我的SQLite数据库中有UTC时间戳。当我尝试使用SELECT QSqlQuery和QSqlQuery :: value()获取其中一个时,它返回一个QVariant。如果我执行QVariant :: toDateTime(),Qt会将时间戳视为本地时间而不是UTC。如何摆脱不正当的调整?
答案 0 :(得分:1)
要将时区重置为UTC,您可以使用QDateTime::setOffsetFromUtc设置零偏移。
它将更改 CREATE TABLE #temp(st_date DATE,end_date DATE,usr_id INT)
INSERT #temp
VALUES ('2007-03-01 ','2015-01-31 ',1),
('2015-02-01 ','2017-04-01 ',1),
('2007-03-01 ','2014-01-31 ',2),
('2007-03-01 ','2015-01-31 ',3),
('2015-03-02 ','2017-04-01 ',3)
DECLARE @st_dt DATE = '2009-02-01 00:00:00',@end_dt DATE = '2017-01-01 00:00:00'
SELECT * FROM #temp WHERE @st_dt BETWEEN st_date AND end_date
AND @end_dt BETWEEN st_date AND end_date
DROP TABLE #temp
个对象。因此,与将{date}转换为UTC的QDateTime
相比,它将引用不同的时间点。
QDateTime::toUTC()