日期时间函数 mysql 和sqlserver 中对于常用函数的日期和时间函数的区别
1. sqlserver中获取时间用getdate(),默认返回格式是2019-01-21 13:58:33.053,具体的年月日,时分秒毫米,年月日之间用短线连接,时分秒之间用冒号连接,秒和毫米之间用点号连接
2. mysql中没有getdate()函数,常用sysdate()和now()函数,获取日期+时间
3. 在上述mysql获取时间的4个函数中,sqlserver对current_timestamp也有定义,返回时间格式2019-01-21 13:58:33.053
select getdate() select sysdate(); select now(); select current_timestamp select current_timestamp() select now(),sysdate(),sleep(1),now(),sysdate() select date_format(now(),'%Y%m%d%H%i%s') select time_format(now(),'%Y%m%d%H%i%s')
4. mysql中now()函数和sysdate()的区别
眨眼看上去都是一样返回了日期和时间,精确到秒,年月日之间用短线连接,时分秒之间用冒号连接
通过sleep()函数延迟了一秒之后,发现now() 是在查询开始时刻则计算了时间,而sysdate()是动态获取时间
5. mysql中日期按指定格式返回,用到date_format(date,format);时间按照指定格式返回,用到time_format(time,format)
6. mysql 中常见的字符串转换成日期和时间的函数,时分秒中注意下大写H和小写h的区别。H可表示24进制的小时,h表示12进制的小时
select str_to_date('01/21/2019', '%m/%d/%Y'); -- 2019-01-21 select str_to_date('01/21/19' , '%m/%d/%y'); -- 2019-01-21 select str_to_date('01.21.2019', '%m.%d.%Y'); -- 2019-01-21 select str_to_date('14:27:30', '%H:%i:%s'); -- 14:27:30 select str_to_date('02:27:30', '%h:%i:%s'); -- 02:27:30 select str_to_date('11:27:30', '%h:%i:%s'); -- 11:27:30 select str_to_date('01.21.2019 14:27:30', '%m.%d.%Y %H:%i:%s'); -- 2019-01-21 14:27:30
7. mysql中日期转换成天数,to_days()
8. mysql中天数转换成日期,from_days()
select str_to_date('01/21/2019', '%m/%d/%Y'); -- 2019-01-21 select str_to_date('01/21/19' , '%m/%d/%y'); -- 2019-01-21 select str_to_date('01.21.2019', '%m.%d.%Y'); -- 2019-01-21 select str_to_date('14:27:30', '%H:%i:%s'); -- 14:27:30 select str_to_date('02:27:30', '%h:%i:%s'); -- 02:27:30 select str_to_date('11:27:30', '%h:%i:%s'); -- 11:27:30 select str_to_date('01.21.2019 14:27:30', '%m.%d.%Y %H:%i:%s'); -- 2019-01-21 14:27:30 select to_days('0000-00-00'); -- 0 select to_days('2019-01-21'); -- 737445 select from_days(737445); -- 2019-01-21 select from_days(0); -- 0000-00-00
9. mysql中日期增加或减去一定时间间隔date_add()
select date_add(now(), interval 1 day); -- add 1 day select date_add(now(), interval 1 hour); -- add 1 hour select date_add(now(), interval 1 minute); -- ... select date_add(now(), interval 1 second); select date_add(now(), interval 1 microsecond); select date_add(now(), interval 1 week); select date_add(now(), interval 1 month); select date_add(now(), interval 1 quarter); select date_add(now(), interval 1 year); select date_add(now(), interval -1 day); -- 1 day
10. mysql中拼日期和时间的函数,makdedate(year,dayofyear), maketime(hour,minute,second)
select makedate(2019,31); -- '2019-01-31' select makedate(2019,32); -- '2019-02-01' select maketime(12,15,30); -- '12:15:30'
------------------------- A little Progress a day makes you a big success... ----------------------------