mysql的datepart函数_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: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()函数使用介绍相关推荐
- mysql的datepart函数_MySQL中的 DATE_FORMAT 与 SQL Server中的 DATEPART()函数使用介绍
本小白最近学习MySQL,因为之前是已经有学过微软大佬的SQL Server所以自认为理解的还是稍快的(滑鸡),好了说正事. 今天在写一个查询语句时,需要用到 一个日期函数:DATEPART( ) 因 ...
- mysql字段分隔符拆分_MySQL里实现类似SPLIT的分割字符串的函数
下边的函数,实现了象数组一样去处理字符串. 一,用临时表作为数组 复制代码 代码如下: create function f_split(@c varchar(2000),@split varchar( ...
- win7 mysql添加到服务_MySQL服务添加到Windows系统服务中
MySQL的安装配置(win7 64-bit) 转,整理. MySQL 版本是 mysql-noinstall-5.1.66-winx64.zip(免安装版) mysql-workbench-gpl- ...
- mysql性能优化学习_mysql学习——性能优化之sql优化
尽量少 join MySQL 的优势在于简单,但这在某些方面其实也是其劣势.MySQL 优化器效率高,但是由于其统计信息的量有限,优化器工作过程出现偏差的可能性也就更多.对于复杂的多表 Join,一方 ...
- oracle sql字符拆分字符串函数,oracle-是否有在PL / SQL中拆分字符串的功能?
oracle-是否有在PL / SQL中拆分字符串的功能? 我需要编写一个过程来规范具有由一个字符连接的多个令牌的记录. 我需要获得这些令牌来分割字符串,并将每个令牌作为新记录插入表中. Oracle ...
- 博图如何读取mysql数据_博途使用小结:从SQL中读取数据并给变量赋值
1.建立内部变量TON_Report,VF01_Runtime,JC01_Runtime,VF05_Runtime,数据类型为Real,长度为2 2.建立查询按钮,点击查询按钮时读取SQL中的数据并赋 ...
- 数据库中系统数据库服务器,sql中什么是系统数据库服务器
sql中什么是系统数据库服务器 内容精选 换一换 数据复制服务(Data Replication Service,简称DRS)是一种易用.稳定.高效.用于数据库实时迁移和数据库实时同步的云服务.数据复 ...
- java中的subString与SQL中的subString(作为常识应该记住的)
java中 "Hello World".substring(6,11); 含义[6,11) 其中两个数字代表索引,索引位置从0开始. SQL中 substring(" ...
- mysql关键字使用顺序_MySQL数据库之单表查询中关键字的执行顺序
MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from where group by having order by limit 2 执行顺序 from ...
最新文章
- RubyGems 库发现了后门版本的网站开发工具 bootstrap-sass
- Redis在C#中的使用及Redis的封装
- +7白盒测试与黑盒测试的定义与区别
- Swift2.0语言教程之下标脚本
- 网络连接错误 failed to handler mux client connection
- 参数迁移表达的第三种形态相互作用
- 斐波那契 非递归写法 非递归实现
- jquery-删除当前行的数据
- 著名风投Greylock扩展基金局限 投资科技行业
- 学校管理系统java(数据库、源码、演讲内容、ppt等)
- perl语言语法基础
- matlab差分进化算法解决TSP问题
- 一网打尽“小黄图”!手把手教你造一只AI鉴黄神器(内附代码及数据集)
- 十大编程语言,每一个都不容易学,但每一个又很有用,黑客必备
- 基于OpenGL的雷达P显的系统设计与仿真 PPI_雷达仿真_雷达模拟器_雷达目标_雷达ppi_PPI显示器_源码
- 换一种姿势挖掘任意用户密码重置漏洞
- CorelDRAW2023新增了哪些功能?
- 病人信息管理html,基于JSP住院病人信息管理系统本科.doc
- word中添加续表和合并续表
- 《魔兽世界》营收出现大幅下滑