语法:
TO_DAYS(date)
给定一个日期date,返回一个日期号码(自0年以来的天数)。
示例:
- mysql> SELECT TO_DAYS(171009);
- -> 736976
- mysql> SELECT TO_DAYS('2017-10-09');
- -> 736976
TO_DAYS()不适用于公历日历(1582)出现之前的值,因为它不考虑日历更改时丢失的日期。在1582年之前的日期(可能在其他地区的其他年份),此功能的结果不可靠。
注意:MySQL将日期中的两位数年份值转换为四位数形式 。例如, '2017-10-09'、 '17-10-09'和‘171009’被看作是相同的日期:
- mysql> SELECT TO_DAYS('2017-10-09'), TO_DAYS('17-10-09'),TO_DAYS('171009');
- -> 736976, 736976,736976
TO_DAYS()拓展知识
在MySQL中,零日期被定义为 '0000-00-00'即使该日期本身被视为无效。这意味着,for '0000-00-00'和 '0000-01-01', TO_DAYS()返回这里显示的值:
- mysql> SELECT TO_DAYS('0000-00-00');
- +-----------------------+
- | to_days('0000-00-00') |
- +-----------------------+
- | NULL |
- +-----------------------+
- 1 row in set, 1 warning (0.00 sec)
- mysql> SHOW WARNINGS;
- +---------+------+----------------------------------------+
- | Level | Code | Message |
- +---------+------+----------------------------------------+
- | Warning | 1292 | Incorrect datetime value: '0000-00-00' |
- +---------+------+----------------------------------------+
- 1 row in set (0.00 sec)
- mysql> SELECT TO_DAYS('0000-01-01');
- +-----------------------+
- | to_days('0000-01-01') |
- +-----------------------+
- | 1 |
- +-----------------------+
- 1 row in set (0.00 sec)
无论ALLOW_INVALID_DATESSQL服务器模式是否启用,都是如此 。
实战中经常用TO_DAYS()函数,例如:
2018年03月20日 13:07:34 沙发
mysql to_days传什么值?
2018年03月20日 15:34:41 1层
@只要在一起 日期date格式的值,例如: ‘2018-03-20’、 ’18-03-20’和‘180320’;