SELECT date('now');
打印YYYY-MM-DD
,我想把它倒过来。
SELECT strftime('%d.%m.%Y','now');
prints DD.MM.YYYY
,我希望一年只有 2 位数字。
如何使用这种格式按日期和按年分组?
允许将日期存储在“YYYY-MM-DD”中。让我们关注如何以您想要的格式显示日期。chepner 的评论非常有价值。
让我们看一个这样的表:
name dob
---------- ----------
John 1990-12-31
Sarah 1989-12-31
Thelma 1989-11-30
Matt 1990-11-30
让我们也显示一个 2 个字符的年份:
sqlite> select a.*, substr(strftime('%Y', dob),3, 2) as yr from test a;
name dob yr
---------- ---------- ----------
John 1990-12-31 90
Sarah 1989-12-31 89
Thelma 1989-11-30 89
Matt 1990-11-30 90
让我们以 dd.mm.yyyy 格式和 dd.mm.yy 格式显示日期:
sqlite> select a.*,
...> strftime('%d.%m.', dob) || substr(strftime('%Y', dob),3, 2) as yr,
...> strftime('%d.%m.%Y', dob) as moddob
...> from test a;
name dob yr moddob
---------- ---------- ---------- ----------
John 1990-12-31 31.12.90 31.12.1990
Sarah 1989-12-31 31.12.89 31.12.1989
Thelma 1989-11-30 30.11.89 30.11.1989
Matt 1990-11-30 30.11.90 30.11.1990
让我们看看有多少人是在不同年份出生的:
sqlite> select substr(strftime('%Y', dob), 3, 2) as yr,
...> count(*)
...> from test
...> group by yr;
yr count(*)
---------- ----------
89 2
90 2
让我们看看有多少人在不同的月份出生:
sqlite> select strftime('%m', dob) as mth,
...> count(*)
...> from test
...> group by mth;
mth count(*)
---------- ----------
11 2
12 2