📜  MySQL日期时间(1)

📅  最后修改于: 2023-12-03 15:17:49.343000             🧑  作者: Mango

MySQL日期时间

在MySQL中,日期和时间数据类型是经常使用的类型之一。MySQL支持以下日期和时间数据类型:

  • DATE:格式为'YYYY-MM-DD'
  • TIME:格式为'HH:MM:SS'
  • DATETIME:格式为'YYYY-MM-DD HH:MM:SS'
  • YEAR:格式为'YYYY'

此外还有两个特殊的日期和时间数据类型:

  • TIMESTAMP:时间戳类型,格式为'YYYY-MM-DD HH:MM:SS'
  • NOW():函数,返回当前日期和时间
日期和时间的格式化

在MySQL中,可以使用一些函数来格式化日期和时间。下面是一些常用的函数:

  • DATE_FORMAT(date, format):将日期格式化为字符串。其中,date为日期类型,format为格式字符串。
  • TIME_FORMAT(time, format):将时间格式化为字符串。其中,time为时间类型,format为格式字符串。
  • STR_TO_DATE(str, format):将字符串转换为日期类型。其中,str为字符串,format为格式字符串。

例如,将日期格式化为'YYYY年MM月DD日',可以使用以下代码:

SELECT DATE_FORMAT('2022-11-11', '%Y年%m月%d日');

输出结果:

2022年11月11日
日期和时间的计算

在MySQL中,可以对日期和时间进行计算。下面是一些常用的函数:

  • DATE_ADD(date, INTERVAL expr unit):添加一个时间间隔到日期。其中,date为日期类型,expr为整数,unit为时间单位。
  • DATE_SUB(date, INTERVAL expr unit):从日期中减去一个时间间隔。其中,date为日期类型,expr为整数,unit为时间单位。
  • TIMEDIFF(time1, time2):计算两个时间之间的差。其中,time1和time2为时间类型。
  • DATEDIFF(date1, date2):计算两个日期之间的天数差。其中,date1和date2为日期类型。

例如,计算两个日期之间的天数差,可以使用以下代码:

SELECT DATEDIFF('2022-11-11', '2022-10-01');

输出结果:

41
日期和时间的比较

在MySQL中,可以使用比较运算符(<、>、=、<=、>=、!=)来比较日期和时间。例如,判断一个日期是否大于另一个日期,可以使用以下代码:

SELECT '2022-11-11' > '2022-10-01';

输出结果:

1

其中,1表示真,0表示假。

日期和时间的存储

在MySQL中,日期和时间数据类型的存储方式是二进制的,占用的存储空间是固定的。例如,DATE类型占用3个字节,DATETIME类型占用8个字节。当从数据库中检索日期和时间数据时,MySQL将其转换为标准的日期和时间格式。

总结

MySQL支持多种日期和时间数据类型,并提供了丰富的函数来格式化、计算和比较日期和时间。在实际开发中,我们需要根据具体的需求选择适当的日期和时间数据类型,并使用合适的函数来处理日期和时间。