MySQL中的日期型变量用于存储日期值。MySQL支持多种日期类型,包括DATE
、DATETIME
、TIMESTAMP
、TIME
和YEAR
。
YYYY-MM-DD
的日期,范围从1000-01-01
到9999-12-31
。YYYY-MM-DD HH:MM:SS
的日期和时间,范围从1000-01-01 00:00:00
到9999-12-31 23:59:59
。YYYY-MM-DD HH:MM:SS
的日期和时间,范围从1970-01-01 00:00:01
UTC到2038-01-19 03:14:07
UTC。HH:MM:SS
的时间,范围从-838:59:59
到838:59:59
。YYYY
,范围从1901
到2155
。以下是一些声明和使用MySQL日期型变量的示例代码:
-- 声明一个DATE类型的变量
DECLARE my_date DATE;
-- 声明一个DATETIME类型的变量
DECLARE my_datetime DATETIME;
-- 声明一个TIMESTAMP类型的变量
DECLARE my_timestamp TIMESTAMP;
-- 声明一个TIME类型的变量
DECLARE my_time TIME;
-- 声明一个YEAR类型的变量
DECLARE my_year YEAR;
-- 赋值
SET my_date = '2023-10-05';
SET my_datetime = '2023-10-05 14:30:00';
SET my_timestamp = CURRENT_TIMESTAMP;
SET my_time = '14:30:00';
SET my_year = 2023;
-- 查询
SELECT my_date, my_datetime, my_timestamp, my_time, my_year;
Incorrect date value
错误?原因:通常是因为插入的日期值不符合MySQL支持的日期格式。
解决方法:
YYYY-MM-DD
格式。STR_TO_DATE()
函数将字符串转换为日期格式。INSERT INTO my_table (date_column) VALUES (STR_TO_DATE('2023-10-05', '%Y-%m-%d'));
原因:TIMESTAMP字段具有自动初始化和更新的特性。
解决方法:
ON UPDATE CURRENT_TIMESTAMP
为NULL
。CREATE TABLE my_table (
id INT PRIMARY KEY,
my_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
DATETIME
。CREATE TABLE my_table (
id INT PRIMARY KEY,
my_datetime DATETIME
);
通过以上方法,可以有效解决MySQL日期型变量声明和使用过程中遇到的常见问题。
领取专属 10元无门槛券
手把手带您无忧上云