1

SELECT date('now');打印YYYY-MM-DD,我想把它倒过来。

SELECT strftime('%d.%m.%Y','now');prints DD.MM.YYYY,我希望一年只有 2 位数字。

如何使用这种格式按日期和按年分组?

4

1 回答 1

3

允许将日期存储在“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
于 2013-09-08T16:39:26.220 回答