TO_DAYS 返回给定日期的天数

TO_DAYS(date) 函数用来返回指定日期自 0 年以来的天数。

注意:TO_DAYS() 不适用于公历 (1582) 出现之前的值,因为它没有考虑日历更改时丢失的天数。对于 1582 年之前的日期(在其他语言环境中可能是更晚的年份),此函数的结果不可靠。

参数说明

  • date 指定的日期

示例用法

(1)返回 0000-01-02 日期自 0 年以来的天数,如下:

mysql> select TO_DAYS('0000-01-02');
+-----------------------+
| TO_DAYS('0000-01-02') |
+-----------------------+
|                     2 |
+-----------------------+
1 row in set

(2)返回今日自 0 年以来的天数,如下:

mysql> select TO_DAYS(NOW());
+----------------+
| TO_DAYS(NOW()) |
+----------------+
|         738745 |
+----------------+
1 row in set

(3)计算两个日期的天数,如下:

mysql> select TO_DAYS('2022-08-13') - TO_DAYS('2022-08-01');
+-----------------------------------------------+
| TO_DAYS('2022-08-13') - TO_DAYS('2022-08-01') |
+-----------------------------------------------+
|                                            12 |
+-----------------------------------------------+
1 row in set

(4)在 MySQL 中,零日期被定义为 '0000-00-00',即使这个日期本身被认为是无效的。这意味着,对于“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

mysql> SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '0000-00-00' |
+---------+------+----------------------------------------+
1 row in set

mysql> SELECT TO_DAYS('0000-01-01');
+-----------------------+
| TO_DAYS('0000-01-01') |
+-----------------------+
|                     1 |
+-----------------------+
1 row in set
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号