如何从日期中获取周数,在SQL中有一个函数:Datepart(GetDate()),它返回周数。在SQLite中该怎么做呢?
你可以使用strftime
函数,其中格式字符串(第一个参数)为%W
,参照SQL As Understood By SQLite - Date And Time Functions。
DROP TABLE IF EXISTS getweek;
CREATE TABLE IF NOT EXISTS getweek (mydate TEXT);
INSERT INTO getweek VALUES ('2018-01-01'),('2018-02-01'),('2018-03-01');
SELECT *, strftime('%W',mydate) AS weekofyear FROM getweek;
这将导致:-
注意日期必须是已认可的日期/时间格式之一(例如,2018/03/01将导致null,因为日期不在已认可的格式中)。请参见上面链接中的时间字符串部分以了解已识别的格式。
%W
对应于“年的周数:00-53”。但是ISO的周数是从1到53。Sqlite似乎遵循Ruby的约定。请参考https://stackoverflow.com/a/48084840/1150961了解详细信息。 - undefined
date_part
函数。 - Basil Bourque