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
我的 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