SQL |日期函数

在SQL中,日期对于新手来说很复杂,因为在使用数据库时,表中日期的格式必须与输入日期匹配,才能插入。在各种场景中,使用datetime(时间也与日期有关)代替date。 在MySql中,默认日期函数是:

null
  • 现在(): 返回当前日期和时间。例子:
    SELECT NOW();
    

    输出:

    2017-01-13 08:03:52
    
  • CURDATE() :返回当前日期。例子:
    SELECT CURDATE();
    

    输出:

    2017-01-13
    
  • CURTIME(): 返回当前时间。例子:
    SELECT CURTIME();
    

    输出:

    08:05:15
    
  • 日期() :提取日期或日期/时间表达式的日期部分。例子: 下表中的“测试”
    身份证件 名称 生日
    4120 普拉蒂克 1996-09-26 16:44:15.581
    SELECT Name, DATE(BirthTime) AS BirthDate FROM Test;
    

    输出:

    名称 生日
    普拉蒂克 1996-09-26
  • 摘录(): 返回日期/时间的单个部分。语法:
    EXTRACT(unit FROM date);
    

    有几个单元可以考虑,但只使用了一些,例如: 微秒、秒、分、时、日、周、月、季、年等。 “date”是一个有效的日期表达式。

    例子: 下表中的“测试”

    身份证件 名称 生日
    4120 普拉蒂克 1996-09-26 16:44:15.581

    询问

    • SELECT Name, Extract(DAY FROM BirthTime) AS BirthDay FROM Test;
      

      输出:

      名称 生日
      普拉蒂克 26
    • SELECT Name, Extract(YEAR FROM BirthTime) AS BirthYear FROM Test;
      

      输出:

      名称 生日
      普拉蒂克 1996
    • SELECT Name, Extract(SECOND FROM BirthTime) AS BirthSecond FROM Test;
      

      输出:

      名称 次生子
      普拉蒂克 581
  • 日期添加(): 将指定的时间间隔添加到日期 语法:
    DATE_ADD(date, INTERVAL expr type);
    

    其中,date–valid date expression和expr是我们要添加的间隔数。 和类型可以是以下类型之一: 微秒、秒、分、时、日、周、月、季、年等。

    例子: 下表中的“测试”

    身份证件 名称 生日
    4120 普拉蒂克 1996-09-26 16:44:15.581

    询问

    • SELECT Name, DATE_ADD(BirthTime, INTERVAL 1 YEAR) AS BirthTimeModified FROM Test;
      

      输出:

      名字 修改出生时间
      普拉蒂克 1997-09-26 16:44:15.581
    • SELECT Name, DATE_ADD(BirthTime, INTERVAL 30 DAY) AS BirthDayModified FROM Test;
      

      输出:

      名称 生日修改
      普拉蒂克 1996-10-26 16:44:15.581
    • SELECT Name, DATE_ADD(BirthTime, INTERVAL 4 HOUR) AS BirthHourModified FROM Test;
      

      输出:

      名称 次生子
      普拉蒂克 1996-10-26 20:44:15.581
  • 日期_SUB(): 从日期中减去指定的时间间隔。DATE_SUB的语法与DATE_ADD相同,只是区别在于DATE_SUB用于减去给定的日期间隔。
  • DATEDIFF(): 返回两个日期之间的天数。语法:
    DATEDIFF(date1, date2);
    date1 & date2- date/time expression
    

    例子:

    SELECT DATEDIFF('2017-01-13','2017-01-03') AS DateDiff;
    

    输出:

    DateDiff
    10
  • 日期格式(): 以不同格式显示日期/时间数据。语法:
    DATE_FORMAT(date,format);
    

    日期是有效的日期,格式指定日期/时间的输出格式。可以使用的格式有:

    • %a-缩写工作日名称(Sun Sat)
    • %b-缩写月份名称(1-12月)
    • %c月,数字(0-12)
    • %带英文后缀的月日(0、1、2、3)
    • %d-月日,数字(00-31)
    • %e-月日,数字(0-31)
    • %f微秒(000000-999999)
    • %小时(00-23)
    • %小时(01-12)
    • %一小时(01-12)
    • %一分钟,数字(00-59)
    • %一年中的j日(001-366)
    • %k小时(0-23)
    • %1小时(1-12)
    • %月名(1月至12月)
    • %m月,数字(00-12)
    • %下午或上午
    • %r时间,12小时(hh:mm:ss后接AM或PM)
    • %秒(00-59)
    • %秒(00-59)
    • %T时间,24小时(hh:mm:ss)
    • %U周(00-53),其中周日是一周的第一天
    • %u周(00-53),其中周一是一周的第一天
    • %V周(01-53),其中周日是一周的第一天,与%X一起使用
    • %v周(01-53),其中周一是一周的第一天,与%x一起使用
    • %W-工作日名称(星期日-星期六)
    • %w-一周中的哪一天(0=周日,6=周六)
    • %星期日为一周的第一天的X年,四位数,与%V一起使用
    • %星期一为一周的第一天的x年,四位数,与%v一起使用
    • %Y年,数字,四位数
    • %y年,数字,两位数

    例子:

    DATE_FORMAT(NOW(),'%d %b %y')
    

    结果:

    13 Jan 17
    

本文由 普拉蒂克·阿加瓦尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享