日期时间函数 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'

  

posted @ 2019-01-21 15:04  巴黎爱工作  阅读(2353)  评论(0编辑  收藏  举报