NOW()
函数。通过执行SELECT NOW();
,可以返回当前的日期和时间。在MySQL数据库中,时间数据类型用于存储日期和时间,MySQL提供了五种时间数据类型,分别是:DATE、TIME、YEAR、DATETIME和TIMESTAMP,下面我们将详细介绍这些数据类型的使用方法和特点。
1、DATE类型
DATE类型用于表示日期,占用4个字节的存储空间,它可以存储从1000年到9999年的日期,创建DATE类型的字段时,可以使用以下语法:
CREATE TABLE example ( date_column DATE );
插入DATE类型的数据时,可以使用字符串或数字格式。
INSERT INTO example (date_column) VALUES ('20220815'); INSERT INTO example (date_column) VALUES (20220815);
2、TIME类型
TIME类型用于表示时间,占用3个字节的存储空间,它可以存储从'838:59:59'到'838:59:59'的时间范围,创建TIME类型的字段时,可以使用以下语法:
CREATE TABLE example ( time_column TIME );
插入TIME类型的数据时,可以使用字符串或数字格式。
INSERT INTO example (time_column) VALUES ('12:30:45'); INSERT INTO example (time_column) VALUES (123045);
3、YEAR类型
YEAR类型用于表示年份,占用1个字节的存储空间,它可以存储从1901年到2155年的年份,创建YEAR类型的字段时,可以使用以下语法:
CREATE TABLE example ( year_column YEAR );
插入YEAR类型的数据时,可以使用字符串或数字格式。
INSERT INTO example (year_column) VALUES ('2022'); INSERT INTO example (year_column) VALUES (2022);
4、DATETIME类型
DATETIME类型用于表示日期和时间,占用8个字节的存储空间,它可以存储从1000年到9999年的日期和时间,创建DATETIME类型的字段时,可以使用以下语法:
CREATE TABLE example ( datetime_column DATETIME );
插入DATETIME类型的数据时,可以使用字符串或数字格式。
INSERT INTO example (datetime_column) VALUES ('20220815 12:30:45'); INSERT INTO example (datetime_column) VALUES (20220815123045);
5、TIMESTAMP类型
TIMESTAMP类型用于表示日期和时间,占用4个字节的存储空间,它可以存储从1970年到2038年的日期和时间,与DATETIME类型不同的是,TIMESTAMP类型会根据时区自动转换时间,创建TIMESTAMP类型的字段时,可以使用以下语法:
CREATE TABLE example ( timestamp_column TIMESTAMP );
插入TIMESTAMP类型的数据时,可以使用字符串或数字格式。
INSERT INTO example (timestamp_column) VALUES ('20220815 12:30:45'); INSERT INTO example (timestamp_column) VALUES (20220815123045);
在MySQL数据库中,有五种时间数据类型可供选择,分别是DATE、TIME、YEAR、DATETIME和TIMESTAMP,根据实际需求选择合适的数据类型,可以有效地存储和管理时间数据,在使用这些数据类型时,需要注意它们的特点和限制,以便正确地创建表和插入数据。
下面是一个介绍,包含了关于MySQL数据库时间相关的查询操作:
查询操作 | 描述 | 语法示例 |
获取当前日期时间 | 获取当前的日期和时间 | SELECT NOW(); |
获取当前时间戳 | 获取当前的时间戳 | SELECT UNIXTIMESTAMP(); |
时间戳转日期时间 | 将时间戳转换成可读的日期时间格式 | SELECT FROMUNIXTIME(1688264330); |
日期时间转时间戳 | 将日期时间转换成时间戳 | SELECT UNIXTIMESTAMP('20230702 00:00:00'); |
日期时间增加间隔 | 在指定的日期时间上增加一个时间间隔 | SELECT DATEADD(date, INTERVAL expr type); |
查询前几小时时间点 | 获取当前时间前几小时的时间点 | SELECT SUBDATE(NOW(), INTERVAL 3 HOUR); |
查询前几天时间点 | 获取当前时间前几天的时间点 | SELECT SUBDATE(NOW(), INTERVAL 3 DAY); |
查询前几分钟时间点 | 获取当前时间前几分钟的时间点 | SELECT SUBDATE(NOW(), INTERVAL 3 MINUTE); |
获取当前时间时分秒 | 获取当前的时分秒 | SELECT CURRENTTIME(); |
获取当前日期年月日 | 获取当前的年月日 | SELECT CURRENTDATE(); |
获取本月最后一天 | 获取当前月的最后一天 | SELECT LASTDAY(CURDATE()); |
获取本月第一天 | 获取当前月的第一天 | SELECT DATEADD(CURDATE(), INTERVAL DAY(CURDATE()) 1 DAY); |
获取下个月第一天 | 获取下个月的第一天 | SELECT DATEADD(CURDATE() DAY(CURDATE()) 1, INTERVAL 1 MONTH); |
获取本月天数 | 获取当前月的总天数 | SELECT DAY(LASTDAY(CURDATE())); |
获取一个月前今天 | 获取一个月前的今天 | SELECT DATE_SUB(CURDATE(), INTERVAL 1 MONTH); |
获取两个月前今天 | 获取两个月前的今天 | SELECT DATE_SUB(CURDATE(), INTERVAL 2 MONTH); |
获取当前月第几天 | 获取当前日期是本月的第几天 | SELECT DAYOFMONTH(CURDATE()); |
请注意,上述介绍中的一些语法示例可能需要根据实际情况进行修改,以符合特定的查询需求。