如何在SQLite上将年份与MM/DD/YY格式分开
我有一个日期格式为MM/DD/YY的表,但它也可以像M/D/YY或MM/D/YY或M/DD/YY,所以我不能使用substr,因为字符串长度发生了变化 例如1/2/98或10/5/12或12/2/10等。由于SQlite没有任何截止日期函数,我也不能使用它 这张桌子看起来像这样如何在SQLite上将年份与MM/DD/YY格式分开,sql,sqlite,date,datetime,Sql,Sqlite,Date,Datetime,我有一个日期格式为MM/DD/YY的表,但它也可以像M/D/YY或MM/D/YY或M/DD/YY,所以我不能使用substr,因为字符串长度发生了变化 例如1/2/98或10/5/12或12/2/10等。由于SQlite没有任何截止日期函数,我也不能使用它 这张桌子看起来像这样 +-------+----------+ | NAME | DATE | +-------+----------+ | John | 12/1/04 | | Megan | 4/11/85 | | Doe
+-------+----------+
| NAME | DATE |
+-------+----------+
| John | 12/1/04 |
| Megan | 4/11/85 |
| Doe | 9/18/17 |
| Smith | 10/27/10 |
+-------+----------+
预期的产出是这样的
+-------+------+
| NAME | DATE |
+-------+------+
| John | 04 |
| Megan | 85 |
| Doe | 17 |
| Smith | 10 |
+-------+------+
我不知道如何,但如果疯狂的程序员能做到这一点
+-------+------+
| NAME | DATE |
+-------+------+
| John | 2004 |
| Megan | 1985 |
| Doe | 2017 |
| Smith | 2010 |
+-------+------+
那太棒了。可能的限制是任何的东西都可以使用字符串函数 这将为您提供第一个结果集:
select name, substr(date, -2) date from mytable
第二个结果集需要一点条件逻辑:
select
name,
1900 + substr(date, -2) + 100 * (0 + substr(date, -2) <= 20) date
from mytable
:
name | date
:---- | ---:
John | 2004
Megan | 1985
Doe | 2017
Smith | 2010
姓名|日期
:---- | ---:
约翰| 2004
梅根| 1985
能源部| 2017
史密斯| 2010
可以使用字符串函数 这将为您提供第一个结果集:
select name, substr(date, -2) date from mytable
第二个结果集需要一点条件逻辑:
select
name,
1900 + substr(date, -2) + 100 * (0 + substr(date, -2) <= 20) date
from mytable
:
name | date
:---- | ---:
John | 2004
Megan | 1985
Doe | 2017
Smith | 2010
姓名|日期
:---- | ---:
约翰| 2004
梅根| 1985
能源部| 2017
史密斯| 2010