D6--时间函数

作者: 喝奶茶不加奶茶 | 来源:发表于2020-06-28 21:38 被阅读0次

    6.1 获取当前时间

    1、获取年月日时分秒

    now 函数:获取当前时间信息
    sysdate 函数:


    区别:
    now() 在执行开始时值就得到了;

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

    eg:

    select now(), sleep(3),now();


    select sysdate(), sleep(3) , sysdate();


    注意:默认的标准时间格式为:年月日用横杠分隔;时分秒用冒号分隔。

    2、获取年月日

    • current_date 函数
      简写:curdate()


    3、获取时分秒

    • current_time 函数
      简写:curtime()


    补充:获取毫秒


    6.2 时间格式的转换

    1、字符串转换为日期格式

    • str_to_date (时间字符串,字符串日期格式) :能够把字符串转换为标准日期格式。
      注意,日期的格式是区分大小写的。下图中加粗为常用的格式。



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

    2、日期转换为特殊字符串形式

    • date_format (日期,字符串格式):能够把一个日期转换为各种样式的字符串


      举例

    6.3 提取时间信息

    1、直接用year、month 等函数提取



    2、使用extract函数提取(不推荐)

    简单了解一下即可。
    语法:extract (日期形式 from 日期内容) 函数


    举例

    6.4 日期的运算

    1、现有日期进行偏移(推荐)

    • date_sub(日期,要减少偏移的间隔)
    date_sub(date,INTERVAL expr type)
    

    其中,expr 是要偏移的数值。

    • date_add(日期,要增加偏移的距离)
    date_add(date,INTERVAL expr type)
    

    举例:



    eg:

    select date_add('2008-08-08 10:12:33', interval '01:10:30' hour_second);

    --偏移时间到秒,1小时10分30秒:2008-08-08 11:23:03

    select date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second);

    --偏移天到秒,1天1小时1分1秒:1997-12-30 22:58:59

    2、两个日期计算天数差

    • date_diff(time1,time2):返回两个日期之间(time1-time2)的天数。
      eg:

    select datediff('2008-08-08','2008-08-01');-- 相差:7 天

    3、两个日期计算时间差

    • timediff(time1,time2):两个日期相减 time1 - time2,返回 time 差值。
      注意:timediff(time1,time2) 函数的两个参数类型必须相同。

    eg:

    select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 相差时间:08:08:08

    select timediff('2009-08-09 08:08:08', '2008-08-08 00:00:00'); --相差时间:838:59:59

    4、两个日期得到指定差(推荐)

    • timestampdiff(unit,begin,end):返回end-begin的结果,其中begin和end是date或datetime格式
    • timestampdiff(year,birth,now()) 计算生日 返回两个日期之间的年份,未过生日减一
      举例:


    相关文章

      网友评论

        本文标题:D6--时间函数

        本文链接:https://www.haomeiwen.com/subject/kjkgfktx.html