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

时间:2017-05-02 23:11:02

标签: string sqlite string-formatting leading-zero

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

这些值以HH:MM格式存储,并且我在尝试按时间对结果进行排序时遇到问题,因为下面的值是< 10:00'缺少一个领先的零。我不希望以相同的无关原因存储前导零的数据。

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

在查询中是否有一种简单的方法可以做到这一点?

由于

2 个答案:

答案 0 :(得分:1)

我认为这样可行:

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')]

答案 1 :(得分:1)

SELECT REPLACE(PRINTF('%5s', your_col), ' ', '0') FROM your_table

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