我有一个SQLite DB,在Messdatum字段中只有日期为TEXT。现在我想 将随机时间连接到该字段,以便Messdatum随时间导致ISO格式。 如何使用一个sql命令更新我的SQL DB?
我的选择测试是: SELECT strftime('%Y-%m-%d',Messdatum)||' '||来自lipo的strftime('%H:%M:%S',CURRENT_TIME)
但总是有相同的时间。 感谢
答案 0 :(得分:0)
如果你真的想要随机时间,你可以添加一个随机数秒(86400是一天中的秒数):
SELECT datetime(Messdatum, '+' || (abs(random()) % 86400) || ' seconds')
FROM lipo
但是,这确实不保证每天的值都是唯一的。
要获取唯一值,您可以使用内部rowid,但这仅适用于每天的第一行和最后一行相距少于86400行,即如果插入其他行,这可能会中断特定日期之后很久:
SELECT datetime(Messdatum, '+' || (rowid % 86400) || ' seconds')
FROM lipo
最可靠(但最慢)的方法是计算具有相同日期的先前行数:
SELECT datetime(Messdatum, '+' || (SELECT COUNT(*)
FROM lipo AS L2
WHERE L2.Messdatum = lipo.Messdatum
AND L2.rowid < lipo.rowid
) || ' seconds')
FROM lipo