MySQL日期与时间函数详解

需积分: 12 1 下载量 35 浏览量 更新于2024-10-25 收藏 11KB TXT 举报
本文档详细介绍了MySQL中与日期和时间处理相关的函数,涵盖了从获取日期的各个部分(如年、月、日、小时、分钟、秒)到进行日期计算、格式化以及时间戳转换等多个方面。 1. `DAYOFWEEK(date)`:返回指定日期是一周中的第几天,其中1代表星期日,7代表星期六。 2. `WEEKDAY(date)`:类似`DAYOFWEEK`,但返回值范围是0(星期一)到6(星期日)。 3. `DAYOFMONTH(date)`:返回日期是所在月份的第几天。 4. `DAYOFYEAR(date)`:返回日期是当年的第几天。 5. `MONTH(date)`:返回日期的月份。 6. `DAYNAME(date)`:返回日期对应的星期名称(例如'星期一')。 7. `MONTHNAME(date)`:返回日期对应的月份名称(例如'一月')。 8. `QUARTER(date)`:返回日期所在的季度,值为1到4。 9. `WEEK(date[, first])`:返回日期是一年的第几周,可选参数`first`用于指定一周的起始日。 10. `YEAR(date)`:返回日期的年份。 11. `HOUR(time)`:返回时间的小时部分。 12. `MINUTE(time)`:返回时间的分钟部分。 13. `SECOND(time)`:返回时间的秒部分。 14. `PERIOD_ADD(P, N)`:将给定的日期周期`P`增加`N`个周期。 15. `PERIOD_DIFF(P1, P2)`:计算两个日期周期之间的差值。 16. `DATE_ADD(date, INTERVAL expr type)` / `DATE_SUB(date, INTERVAL expr type)` / `ADDDATE(date, INTERVAL expr type)` / `SUBDATE(date, INTERVAL expr type)`:这些函数用于向或从日期添加或减去指定的时间间隔。 17. `EXTRACT(type FROM date)`:从日期中提取指定的时间元素(如年、月、日等)。 18. `TO_DAYS(date)`:将日期转换为自公元0000年1月1日以来的天数。 19. `FROM_DAYS(N)`:根据从公元0000年1月1日算起的天数`N`,反向计算出日期。 20. `DATE_FORMAT(date, format)`:按照指定的格式字符串`format`格式化日期。 21. `TIME_FORMAT(time, format)`:按照指定的格式字符串`format`格式化时间。 22. `CURDATE()`:返回当前日期。 23. `CURTIME()`:返回当前时间。 24. `SYSDATE()`:返回系统当前日期和时间,实时更新。 25. `UNIX_TIMESTAMP()` / `UNIX_TIMESTAMP(date)`:将日期或当前日期转换为Unix时间戳(自1970年1月1日以来的秒数)。 26. `FROM_UNIXTIME(unix_timestamp)` / `FROM_UNIXTIME(unix_timestamp, format)`:将Unix时间戳转换为日期,可选的`format`参数用于格式化结果。 27. `SEC_TO_TIME(seconds)`:将秒数转换为时间格式('HH:MM:SS')。 28. `TIME_TO_SEC(time)`:将时间格式转换为秒数。 在实际应用中,这些函数可以用于各种日期和时间操作,例如: - 查询距离当前日期30天内的数据:`SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;` - 根据星期筛选数据:`SELECT * FROM table WHERE DAYOFWEEK(date_col) = 1;`(查询星期日的数据) - 获取日期的特定部分:`SELECT MONTHNAME(date_col), HOUR(time_col) FROM table;` 掌握这些函数对于在MySQL中进行复杂的时间和日期操作至关重要,它们极大地提升了数据处理的灵活性和便利性。