mysql数据类型 DATETIME,DATE,TIMESTAMP的区别 ╰半夏微凉° 2024-04-17 05:37 26阅读 0赞 **一、DATETIME** 显示格式:YYYY-MM-DD HH:MM:SS 时间范围:\[ '1000-01-01 00:00:00'到'9999-12-31 23:59:59'\] **二、DATE** 显示格式:YYYY-MM-DD 时间范围:\['1000-01-01'到'9999-12-31'\] **三、TIMESTAMP** 显示格式:YYYY-MM-DD HH:MM:SS 时间范围:\[ '1970-01-01 00:00:00'到'2037-12-31 23:59:59'\] TIMESTAMP注意点: TIMESTAMP DEFAULT CURRENT\_TIMESTAMP ON UPDATE CURRENT\_TIMESTAMP 在创建新记录和修改现有记录的时候都对这个数据列刷新。 TIMESTAMP DEFAULT CURRENT\_TIMESTAMP 在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它。 TIMESTAMP ON UPDATE CURRENT\_TIMESTAMP 在创建新记录的时候把这个字段设置为0,以后修改时刷新它。 TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT\_TIMESTAMP 在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它 1、TIMESTAMP列不为空时,默认值可以为“0000-00-00 00:00:00”,但不能为null。 2、一个表可以存在多个TIMESTAMP列,但一个表只有一个TIMESTAMP类型的字段可以在默认值或者UPDATE部分用CURRENT\_TIMESTAMP,即设置为数据更新而改变为数据库系统当前值。 3、TIMESTAMP列的默认值是CURRENT\_TIMESTAMP常量值。当记录数据发生变化的时候,TIMESTAMP列会自动将其值设定为CURRENT\_TIMESTAMP。 4、TIMESTAMP列创建后的格式是: ALTER TABLE \`course\` ADD COLUMN \`birthday\` timestamp NOT NULL DEFAULT CURRENT\_TIMESTAMP ON UPDATE CURRENT\_TIMESTAMP; ALTER TABLE \`course\` ADD COLUMN \`birthday\` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT\_TIMESTAMP ; ALTER TABLE \`course\` ADD COLUMN \`birthday\` timestamp NULL AFTER \`cname\`; **四、日期格式转换** 1、字符串转日期 select STR\_TO\_DATE('2013-01-29 13:49:18', '%Y-%m-%d %H:%i:%s') 2、日期转字符串 select DATE\_FORMAT('2013-01-29 13:49:18', '%Y-%m-%d %H:%i:%s') **五、日期的中常用的年月日时分秒星期月份等获取方法** select TIMESTAMP('2013-01-29 13:50:27'); select DATE('2013-01-29 13:50:27'); select YEAR('2013-01-29 13:50:27'); select MONTH(('2013-01-29 13:50:27'); select WEEK('2013-01-29 13:50:27'); select DAY('2013-01-29 13:50:27'); select TIME('2013-01-29 13:50:27'); select CURTIME(); select CURDATE(); select CURRENT\_DATE; select CURRENT\_TIME; select CURRENT\_TIMESTAMP; select NOW() **六、日期的运算:** SELECT DATE\_ADD('2013-01-29 13:50:27', INTERVAL 1 DAY); -> '2013-01-30 13:50:27' SELECT DATE\_ADD('2013-01-29 13:50:27', INTERVAL 1 HOUR); -> '2013-01-29 14:50:27' SELECT DATE\_ADD('2013-01-29 13:50:27', INTERVAL 1 MONTH); -> '2013-02-28 13:50:27'
还没有评论,来说两句吧...