sql 中date、String 转换函数

本文介绍MySQL中日期时间的处理方法,包括获取当前日期时间、日期时间格式化、字符串与日期相互转换、时间与秒的转换等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

1、当前日期:

2、当前时间:

3、当前日期和时间:

4、截取日期元素:

5、日期、时间转换为字符串函数:

6、字符串转换为日期函数:

7、(时间、秒) 转换函数:

8、unix时间戳 转换 日期 函数:

9、时间戳(timestamp)转换、增、减函数:

10、日期 转换 时间戳 函数:

11、日期时间计算函数:

12、MySQL日期格式化(format)取值范围。


1、当前日期:

    CURRENT_DATE    格式为:’2019-06-18’

2、当前时间:

    CURRENT_TINE     格式为:‘23:54:43’

3、当前日期和时间:

    CURRENT_TIMESTAMP

    current_timestamp()

    now()     -- 在执行开始时值就得到了

    sysdate()  -- 在函数执行时动态得到值

    格式为:‘2019-06-18 23:56:00’   

     sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了,               sysdate() 在函数执行时动态得到值。如:select now(), sleep(3), sysdate(),now();

4、截取日期元素:

    EXTRACT(日期元素 from 日期)

    如:

Select extract(year from CURRENT_TIMESTAMP) as year from dual; -- 2021

 5、日期、时间转换为字符串函数:

      date_format(date,format)

      time_format(time,format)

能够把一个日期/时间转换成各种各样的字符串格式。

如:

select date_format('2008-08-08 22:23:01', '%Y%m%d%H%i%s'); -- 20080808222301

6、字符串转换为日期函数:

    str_to_date(str,format

    如:

select str_to_date('08.09.2008 08:09:30', '%m.%d.%Y %h:%i:%s'); -- 2008-08-09 08:09:30

7、(时间、秒) 转换函数:

  time_to_sec(time)

  sec_to_time(seconds)

如:

select time_to_sec('01:00:05');    -- 3605
select sec_to_time(3605);     --  '01:00:05'

8、unix时间戳 转换 日期 函数:

     from_unixtime(unix_timestamp)

     from_unixtime(unix_timestamp,format)

如:

select unix_timestamp('2016-01-02'); -- 1451664000
select from_unixtime(1451664000); -- 2016-01-02 00:00:00
select from_unixtime(1451664000,'%Y.%m.%d'); -- 2016.01.02

9、时间戳(timestamp)转换、增、减函数:

timestamp(date) -- date to timestamp
timestamp(dt,time) -- dt + time
timestampadd(unit,interval,datetime_expr) --
timestampdiff(unit,datetime_expr1,datetime_expr2)
--

10、日期 转换 时间戳 函数:

    unix_timestamp()

    unix_timestamp(date)

 如:

select unix_timestamp(); -- 1623203157
select unix_timestamp('2016-01-02'); -- 1623203157

11、日期时间计算函数:

    date_add()    -- 为日期加上一个时间间隔

    date_sub()    -- 为日期减去一个时间间隔

    datediff(date1,date2  -- 两个日期相减

    timediff(time1,time2   -- 两个时间相减

如:为日期加上(date_add)、或 减去(date_sub)一个时间间隔

select now(); -- 2021-06-09 09:55:33
select date_add(now(), interval 1 day); -- 加1天     			2021-06-10 09:55:33
select date_add(now(), interval 1 hour); -- 加1小时    		2021-06-09 10:55:33
select date_add(now(), interval 1 minute); -- 加1分钟  		2021-06-09 09:56:33
select date_add(now(), interval 1 second); -- 加1秒  			2021-06-09 09:55:34				
select date_add(now(), interval 1 microsecond);-- 加1毫秒 2021-06-09 09:55:33.000001
select date_add(now(), interval 1 week); -- 加1周					2021-06-16 09:55:33
select date_add(now(), interval 1 month); -- 加1月				2021-07-09 09:55:33
select date_add(now(), interval 1 quarter); -- 加1季度		2021-09-09 09:55:33
select date_add(now(), interval 1 year); -- 加1年					2022-06-09 09:55:33
select date_add(now(), interval '1 01:15:30' day_second);-- 加1天和指定秒	 2021-06-10 11:11:03
select date_add(now(), interval '01:15:30' hour_second);-- 加小时秒	  2021-06-09 11:11:03

日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)

如:

select datediff('2021-06-18', '2021-06-09'); -- 9

12、MySQL日期格式化(format)取值范围。

 含义
%S、%s两位数字形式的秒( 00,01, ..., 59)
%I、%i两位数字形式的分( 00,01, ..., 59)
小时 %H24小时制,两位数形式小时(00,01, ...,23)
%h12小时制,两位数形式小时(00,01, ...,12)
%k24小时制,数形式小时(0,1, ...,23)
%l  12小时制,数形式小时(0,1, ...,12)    小写的L。
%T24小时制,时间形式(HH:mm:ss)
%r 12小时制,时间形式(hh:mm:ss AM 或 PM)
%p AM上午或PM下午 
  周  %W一周中每一天的名称(Sunday,Monday, ...,Saturday)
 %a一周中每一天名称的缩写(Sun,Mon, ...,Sat) 
%w 以数字形式标识周(0=Sunday,1=Monday, ...,6=Saturday) 
%U数字表示周数,星期天为周中第一天
%u数字表示周数,星期一为周中第一天
%d 两位数字表示月中天数(01,02, ...,31)
%e  数字表示月中天数(1,2, ...,31)
 %D英文后缀表示月中天数(1st,2nd,3rd ...) 
 %j以三位数字表示年中天数(001,002, ...,366) 
%M 英文月名(January,February, ...,December) 
%b 英文缩写月名(Jan,Feb, ...,Dec) 
%m 两位数字表示月份(01,02, ...,12)
%c 数字表示月份(1,2, ...,12) 
%Y 四位数字表示的年份(2015,2016...)
%y  两位数字表示的年份(15,16...)
文字输出 %文字 直接输出文字内容
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值