• MySQL中的 DATE_FORMAT 与 SQL 中的 DATEPART()函数使用介绍


    本小白最近学习MySQL,因为之前是已经有学过微软大佬的SQL Server所以自认为理解的还是稍快的(滑鸡),好了说正事。

    今天在写一个查询语句时,需要用到 一个日期函数:DATEPART( )

    因为SQL Server是有这个函数的,所以首先想到了这个函数,结果发现在MySQL中这个函数是不存在的

    赶紧去百度,在 API 中查询琢磨了半天终于搞明白了!!

    在MySQL中,虽然没有 DATEPART( ) 函数,但是可以用 DATE_FORMAT( )函数来代替,两种函数的用法基本一致,接下来记录一下这两个函数的使用。

    DATEPART ( ) 函数

    DATEPART( )函数:用来返回代表指定日期的指定日期部分的整数。

    语法如下:

    DATEPART( 日期缩写 , 日期 )   例如  DATEPART( dd , 2019-03-08 )

    解释:简单来说就是,这个函数需要传入两个参数,第一个参数是你要提取的部分(比如:yy,mm,dd 等),第二个参数当然就是你要从哪个日期中取出你需要的时间啦

    下面将列出日期和日期缩写的表:

    日期 缩写
    年(year) yy或yyyy
    季度(quarter) qq或q
    月(month) mm或m
    年的第几天(dayofyear) dy或y
    天(day) dd或d
    周(week) wk或ww
    一周的第几天(weekday) dw
    小时(Hour) hh
    分钟(minute) mi或n
    秒(second) ss或s
    毫秒(millisecond) ms

    代码演示阶段:

    SELECT DATEPART(yy,'2019-03-08 18:50')
    返回:2019
    
    SELECT DATEPART(mm,'2019-03-08 18:50')
    返回:3
    
    SELECT DATEPART(dd,'2019-03-08 18:50:25')
    返回:8
    
    SELECT DATEPART(qq,'2019-03-08 18:50:25')
    返回:1
    
    SELECT DATEPART(dy,'2019-03-08 18:50:25')
    返回:67
    
    SELECT DATEPART(ww,'2019-03-08 18:50:25')
    返回:10
    
    --这个返回这周第几天需要注意一下:
    --2019-03-08实际是星期五但是返回了6
    --是因为国际标准每周日是每星期的第一天,周六则是每星期的最后一天
    --所以星期五则返回6
    SELECT DATEPART(dw,'2019-03-08 18:50:25')
    返回:6
    
    SELECT DATEPART(hh,'2019-03-08 18:50:25')
    返回:18
    
    SELECT DATEPART(mi,'2019-03-08 18:50:25')
    返回:50
    
    SELECT DATEPART(ss,'2019-03-08 18:50:25')
    返回:25
    
    --因为我没输入毫秒所以默认是0
    SELECT DATEPART(ms,'2019-03-08 18:50:25')
    返回:0

     好了到这里关于 DATEPART() 函数的介绍基本已经说完了,接下来说说DATE_FORMAT()函数

    DATE_FORMAT()函数

    DATE_FORMAT( )函数:用来从指定的日期中返回你指定的日期格式。

    语法为:

    #正好和DATEPART()相反
    #DATEPART()中的参数第一个是指定格式,第二个是指定日期
    DATE_FORMAT( 指定日期 , 指定格式 )    例如    DATE_FORMAT('2019-03-09 09:56:35' , '%Y')

    这里会发现指定的格式('%Y')在我上面写的表中是没有的,当然,DATE_FORMAT是有一个专门的格式表

    在这里重新列出来可用在DATE_FORMAT()函数的格式表

    如下表:

    格式符 说明
    %a

    工作日的缩写名称  (Sun..Sat)

    %b

    月份的缩写名称  (Jan..Dec)

    %c

    月份,数字形式(0..12)

    %D

    带有英语后缀的该月日期  (0th, 1st, 2nd, 3rd, ...)

    %d

    该月日期, 数字形式 (00..31)

    %e

    该月日期, 数字形式(0..31)

    %f

    微秒 (000000..999999)

    %H

    小时(00..23)

    %h

    小时(01..12)

    %I

    小时 (01..12)

    %i

    分钟,数字形式 (00..59)

    %j

    一年中的第几天 (001..366)

    %k

    小时 (0..23)

    %l(小写L)

    小时 (1..12)

    %M

    月份名称 (January..December)

    %m

    月份, 数字形式 (00..12)

    %p

    上午(AM)或下午( PM)

    %r

    获得时间 ,例如 (10: 11: 43 AM)

    %S

    秒 (00..59)

    %s

    秒 (00..59)

    %T

    时间 , 例如 (10:11:43   不加AM或PM)

    %U 周 (00..53), 其中周日为每周的第一天
    %u 周 (00..53), 其中周一为每周的第一天 
    %V

    周 (01..53), 其中周日为每周的第一天 ; 和 %X同时使用

    %v

    周 (01..53), 其中周一为每周的第一天 ; 和 %x同时使用

    %W

    工作日名称 (周日..周六)

    %w

    一周中的每日 (0=周日..6=周六)

    %X

    该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用

    %x

    该周的年份,其中周一为每周的第一天, 数字形式,4位数;和%v同时使用

    %Y

    年份, 数字形式,4位数

    %y

    年份, 数字形式 (2位数)

    %%

    ‘%’文字字符

    代码演示阶段:

    --因为格式字符太多所以这次只演示一部分常用的,其他的自行实验
    
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%Y')
    返回:2019
    
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%y')
    返回:19
    
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%c')
    返回:3
    
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%d')
    返回:09
    
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%e')
    返回:9
    
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%r')
    返回:10:18:37  AM
    
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%T')
    返回:10:18:37
    
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%m')
    返回:03

    注:这里还有一点要说明,DATE_FORMAT()函数中还可以将指定的格式组合起来写,写法如下:

    --比如这样,格式中我们写成 '%Y-%m-%d'
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%Y-%m-%d')
    返回:2019-03-09
    --注意这里的 '-' 连接符可以随意写自己想怎么写怎么写,也可以写成
    SELECT DATE_FORMAT('2019-03-09 10:18:37','%Y年%m月%d日')
    返回:2019年03月09日
    --反正自己怎么看顺眼就怎么写
    
    
    
    --自此本篇博客就此结束
    --希望各位看官大爷觉得有帮助的记得点点赞手留余香
    --如有不足的地方也欢迎在评论区评论
  • 相关阅读:
    ahjesus动态生成表达式树
    ahjesus sql2005+游标示例
    Ahjesus获取自定义属性Attribute或属性的名称
    快速设置超炫banner,js插件
    清除浮动after
    Javascript中void操作符
    ahjesus js 快速求幂
    "静态控件"组件:<static> —— 快应用组件库H-UI
    "搜索栏"组件:<search> —— 快应用组件库H-UI
    "穿梭框"组件:<transfer> —— 快应用组件库H-UI
  • 原文地址:https://www.cnblogs.com/wanguncle/p/10497675.html
Copyright © 2020-2023  润新知