一、MySQL中当前时间的获取
SELECT NOW();
NOW()是MySQL内置的函数,用于获取当前系统时间。
在MySQL中还有其他获取当前时间的函数,如CURDATE()、CURTIME()和SYSDATE(),它们用于获取当前日期、当前时间和当前系统日期时间。
二、使用CURRENT_TIMESTAMP替代NOW()
SELECT CURRENT_TIMESTAMP;
CURRENT_TIMESTAMP的功能与NOW()类似,也可以获取当前系统时间,但是更加灵活,可以用作列默认值和更新列值。
CURRENT_TIMESTAMP的一个常用场景是在创建表时设置时间戳字段的默认值,例如:
CREATE TABLE `table_name` ( `id` int(11) NOT NULL AUTO_INCREMENT, `content` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
上面的表创建语句中,created_at字段的默认值为当前时间,updated_at字段的默认值为当前时间,并且在更新记录时自动更新为当前时间。
三、使用DATE_FORMAT格式化时间
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s');
DATE_FORMAT函数用于格式化日期时间,其中第一个参数是要格式化的日期时间,第二个参数是格式化字符串。
常用的格式化字符串包括:
- %Y:四位数字表示的年份
- %m:表示月份,范围为00~12
- %d:表示日期,范围为00~31
- %H:表示小时,范围为00~23
- %i:表示分钟,范围为00~59
- %s:表示秒数,范围为00~59
通过使用不同的格式化字符串,我们可以将日期时间按照不同的格式输出。
四、使用UNIX_TIMESTAMP将日期时间转换为时间戳
SELECT UNIX_TIMESTAMP(NOW());
UNIX_TIMESTAMP函数用于将日期时间转换为Unix时间戳,即从1970年1月1日00:00:00以来经过的秒数。
通过将日期时间转换为Unix时间戳,我们可以进行更精确的时间计算,例如计算两个日期时间之间的差值。
五、使用TIMESTAMPDIFF计算两个日期时间之间的差值
SELECT TIMESTAMPDIFF(SECOND, '2022-01-01 00:00:00', NOW());
TIMESTAMPDIFF函数用于计算两个日期时间之间的差值,其中第一个参数是时间单位,第二个参数是开始时间,第三个参数是结束时间。
常用的时间单位包括:
- SECOND:秒数
- MINUTE:分钟数
- HOUR:小时数
- DAY:天数
- WEEK:周数
- MONTH:月数
- YEAR:年数
通过使用TIMESTAMPDIFF函数,我们可以计算两个日期时间之间相差的秒数、分钟数、小时数等等。
六、使用DATE_ADD和DATE_SUB计算日期时间的加减
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR);
DATE_ADD和DATE_SUB函数用于计算日期时间的加减,其中第一个参数是要加减的日期时间,第二个参数是加减的时间间隔。
常用的时间间隔包括:
- YEAR:年
- QUARTER:季度
- MONTH:月
- WEEK:周
- DAY:天
- HOUR:小时
- MINUTE:分钟
- SECOND:秒
通过使用DATE_ADD和DATE_SUB函数,我们可以计算日期时间的加减,例如获取昨天的日期、获取一个小时前的时间等等。