SQLite中如何将时间戳17914转换为日期?正确日期为2019-01-18
解决SQLite中时间戳17914转换为日期2019-01-18的方案
这个时间戳17914看起来是从某个基准日期开始的天数偏移量,要在SQLite里转成目标日期,咱们可以直接用内置的DATE()函数来搞定,步骤很清晰:
第一步:反推基准日期
既然已知17914对应2019-01-18,我们可以先通过这个结果反算出时间戳的起始基准日期,执行这段SQL就行:
SELECT DATE('2019-01-18', '-' || 17914 || ' days');
实际运行后会得到基准日期(比如结果是1969-12-20,你可以自己验证下准确性)。
第二步:编写转换语句
拿到基准日期后,转换同类型时间戳就很简单了。针对你的17914,直接用下面的语句:
SELECT DATE('1969-12-20', '+' || 17914 || ' days');
执行后会直接返回2019-01-18,和你给出的正确日期完全匹配。
简化写法(可选)
如果已经确认基准日期固定,也可以把逻辑合并成一句,不用单独查基准:
SELECT DATE('2019-01-18', '-' || 17914 || ' days', '+' || your_timestamp || ' days');
把your_timestamp替换成你要转换的数值就可以批量处理了。
补充说明
SQLite的DATE()函数对日期加减的支持很灵活,格式是DATE(起始日期, 偏移表达式),偏移可以是'N days'、'N months'这类格式,刚好适配这种基于天数的时间戳场景。
内容的提问来源于stack exchange,提问作者Rime
相关产品推荐
相关产品推荐

