本小白最近学习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:37AMSELECT 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日--反正自己怎么看顺眼就怎么写

--自此本篇博客就此结束--希望各位看官大爷觉得有帮助的记得点点赞手留余香--如有不足的地方也欢迎在评论区评论

mysql的datepart函数_MySQL中的 DATE_FORMAT 与 SQL 中的 DATEPART()函数使用介绍相关推荐

  1. mysql的datepart函数_MySQL中的 DATE_FORMAT 与 SQL Server中的 DATEPART()函数使用介绍

    本小白最近学习MySQL,因为之前是已经有学过微软大佬的SQL Server所以自认为理解的还是稍快的(滑鸡),好了说正事. 今天在写一个查询语句时,需要用到 一个日期函数:DATEPART( ) 因 ...

  2. mysql字段分隔符拆分_MySQL里实现类似SPLIT的分割字符串的函数

    下边的函数,实现了象数组一样去处理字符串. 一,用临时表作为数组 复制代码 代码如下: create function f_split(@c varchar(2000),@split varchar( ...

  3. win7 mysql添加到服务_MySQL服务添加到Windows系统服务中

    MySQL的安装配置(win7 64-bit) 转,整理. MySQL 版本是 mysql-noinstall-5.1.66-winx64.zip(免安装版) mysql-workbench-gpl- ...

  4. mysql性能优化学习_mysql学习——性能优化之sql优化

    尽量少 join MySQL 的优势在于简单,但这在某些方面其实也是其劣势.MySQL 优化器效率高,但是由于其统计信息的量有限,优化器工作过程出现偏差的可能性也就更多.对于复杂的多表 Join,一方 ...

  5. oracle sql字符拆分字符串函数,oracle-是否有在PL / SQL中拆分字符串的功能?

    oracle-是否有在PL / SQL中拆分字符串的功能? 我需要编写一个过程来规范具有由一个字符连接的多个令牌的记录. 我需要获得这些令牌来分割字符串,并将每个令牌作为新记录插入表中. Oracle ...

  6. 博图如何读取mysql数据_博途使用小结:从SQL中读取数据并给变量赋值

    1.建立内部变量TON_Report,VF01_Runtime,JC01_Runtime,VF05_Runtime,数据类型为Real,长度为2 2.建立查询按钮,点击查询按钮时读取SQL中的数据并赋 ...

  7. 数据库中系统数据库服务器,sql中什么是系统数据库服务器

    sql中什么是系统数据库服务器 内容精选 换一换 数据复制服务(Data Replication Service,简称DRS)是一种易用.稳定.高效.用于数据库实时迁移和数据库实时同步的云服务.数据复 ...

  8. java中的subString与SQL中的subString(作为常识应该记住的)

    java中 "Hello World".substring(6,11); 含义[6,11)    其中两个数字代表索引,索引位置从0开始. SQL中 substring(" ...

  9. mysql关键字使用顺序_MySQL数据库之单表查询中关键字的执行顺序

    MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from where group by having order by limit 2 执行顺序 from ...

最新文章

  1. RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass
  2. Redis在C#中的使用及Redis的封装
  3. +7白盒测试与黑盒测试的定义与区别
  4. Swift2.0语言教程之下标脚本
  5. 网络连接错误 failed to handler mux client connection
  6. 参数迁移表达的第三种形态相互作用
  7. 斐波那契 非递归写法 非递归实现
  8. jquery-删除当前行的数据
  9. 著名风投Greylock扩展基金局限 投资科技行业
  10. 学校管理系统java(数据库、源码、演讲内容、ppt等)
  11. perl语言语法基础
  12. matlab差分进化算法解决TSP问题
  13. 一网打尽“小黄图”!手把手教你造一只AI鉴黄神器(内附代码及数据集)
  14. 十大编程语言,每一个都不容易学,但每一个又很有用,黑客必备
  15. 基于OpenGL的雷达P显的系统设计与仿真 PPI_雷达仿真_雷达模拟器_雷达目标_雷达ppi_PPI显示器_源码
  16. 换一种姿势挖掘任意用户密码重置漏洞
  17. CorelDRAW2023新增了哪些功能?
  18. 病人信息管理html,基于JSP住院病人信息管理系统本科.doc
  19. word中添加续表和合并续表
  20. 《魔兽世界》营收出现大幅下滑

热门文章

  1. 一篇读懂什么是白盒测试
  2. 刚入行大数据的海归分享他的工作经历
  3. Python如何忽略警告
  4. 【论文阅读】Modeling Multi-turn Conversation with Deep Utterance Aggregation
  5. 一天一个 Linux 命令(30):hdparm 命令
  6. OpenCV-Python——第19章:傅里叶变换
  7. php中析构函数是自动调用吗,php析构函数什么时候调用
  8. HUAWEI 机试题:出勤奖的判断
  9. 特斯拉想上海建厂 外媒:欲在华成功 它必须降价 | 行业
  10. 心跳信号分类预测(四)