SQLite - 在返回的文本字段中左填充零

SQLite - Left-pad zeros in returned Text field

我的 SQLite 数据库中有一个存储时间值的文本字段,但由于不相关的原因,我无法将数据类型更改为时间。

这些值以 HH:MM 格式存储,我在尝试按时间对结果进行排序时遇到了问题,因为“10:00”以下的值缺少前导零。出于同样不相关的原因,我不想存储前导零的数据。

我想在查询中添加一些内容,以便在必要时填充缺失的字符,从而使收集到的结果显示为“08:30”。我一直在搜索命令和函数词典,但没有找到我需要的东西。

有没有一种简单的方法可以在查询中执行此操作?

谢谢

我认为这可行:

select your_col, case when length(your_col) < 5 
                      then '0' || your_col else your_col end from your_table

演示使用 Python

>>> conn.execute('''select c, case when length(c) < 5 
                                   then '0' || c else c end from t''').fetchall()
[(u'10:00', u'10:00'), (u'8:00', u'08:00')]
SELECT REPLACE(PRINTF('%5s', your_col), ' ', '0') FROM your_table

PRINTF 调用用空格填充值直到它是 5 个字符,并且 REPLACE 调用将这些空格替换为零。