MySQL日期函数
- 1、DATE()
- 2、TIME()
- 3、TIMESTAMP()
- 4、NOW()、CURRENT_TIMESTAMP、CURRENT_TIMESTAMP()、SYSDATE()
- 5、STR_TO_DATE()
- 6、DATE_FORMAT()
- 7、UNIX_TIMESTAMP()
- 8、FROM_UNIXTIME
- 9、其他日期函数
- 10、日期格式
1、DATE()
返回 日期。格式:YYYY-MM-DD
SELECT DATE(NOW());
> 2022-04-04
2、TIME()
返回 日期。格式:HH-mm-ss
SELECT TIME(NOW());
> 16:25:09
3、TIMESTAMP()
返回 日期时间。格式:YYYY-MM-DD HH-mm-ss
SELECT TIMESTAMP(NOW());
> 2022-04-04 16:31:12
4、NOW()、CURRENT_TIMESTAMP、CURRENT_TIMESTAMP()、SYSDATE()
select NOW(),CURRENT_TIMESTAMP,CURRENT_TIMESTAMP();
> 2022-04-04 16:40:03 2022-04-04 16:40:03 2022-04-04 16:40:03
这里需要注意前三者都是**返回语句执行开始执行的时间**,后者**SYSDATE()不同返回的是这个函数执行时候的时间**
select SLEEP(1),NOW(),CURRENT_TIMESTAMP,CURRENT_TIMESTAMP(),SYSDATE();
> 0 2022-04-04 16:42:22 2022-04-04 16:42:22 2022-04-04 16:42:22 2022-04-04 16:42:23
这里可以看到我们利用sleep(1),让sql延时了一秒得到前三者与seelp(1)的区别SYSDATE()明显比NOW()这些多一秒,所以我们可以知道 预期结果是延时前后now()
函数对应的时间不变,sysdate()
的时间等于之前的时间加上延时时间
5、STR_TO_DATE()
根据指定的格式,将字符串转交成对应的日期或日期类型
例1、
SELECT STR_TO_DATE('2022-04-04 22:50:17','%Y-%m-%d');
> 2022-04-04
没有时分秒时这里就忽略显示了
例2、
SELECT STR_TO_DATE('2022-04-04 22:50:17','%Y-%m-%d %H');
> 2022-04-04 22:00:00
6、DATE_FORMAT()
将日期根据指定的格式返回为对应的字符串
更多日期格式
例1、
SELECT DATE_FORMAT('2022-04-04 22:50:17','%Y-%m-%d');
> 2022-04-04
例2、
SELECT DATE_FORMAT('2022-04-04 22:50:17','%Y-%m-%d %H');
> 2022-04-04 22
7、UNIX_TIMESTAMP()
获取日期的时间戳(10位)
SELECT unix_timestamp(now());
> 1649083817
8、FROM_UNIXTIME
根据时间戳(10位)返回日期
例1、
SELECT FROM_UNIXTIME(1649087115)
> 2022-04-04 23:45:15
例2、加上第二个参数 格式化
SELECT FROM_UNIXTIME(1649087115,'%Y-%m-%s')
> 2022-04-15
9、其他日期函数
函数名
描述
样例
结果
NOW()
获取当前日期 格式’yyyy-MM-dd HH:mm:ss’
select NOW();
2022-04-04 22:50:17
CURDATE()
获取当前日期 格式’yyyy-MM-dd’
select CURDATE();
2022-04-04
CURTIME()
获取当前日期 格式’HH:mm:ss’
select CURTIME();
22:50:17
CURRENT_TIMESTAMP()
获取当前日期 格式’yyyy-MM-dd HH:mm:ss’
select CURRENT_TIMESTAMP();
2022-04-04 22:50:17
CURRENT_DATE()
获取当前日期 格式’yyyy-MM-dd’
select CURRENT_DATE();
2022-04-04
CURRENT_TIME()
获取当前日期 格式’HH:mm:ss’
select CURRENT_TIME();
22:50:17
CURRENT_TIMESTAMP
获取当前日期 格式’yyyy-MM-dd HH:mm:ss’
select CURRENT_TIMESTAMP;
2022-04-04 22:50:17
CURRENT_DATE
获取当前日期 格式’yyyy-MM-dd’
select CURRENT_DATE;
2022-04-04
CURRENT_TIME
获取当前日期 格式’HH:mm:ss’
select CURRENT_TIME;
22:50:17
SYSDATE()
获取这个函数的执行时间 格式’yyyy-MM-dd HH:mm:ss’
select SYSDATE;
2022-04-04 22:50:17
YEAR()
获取年份
select YEAR(NOW()) ;
2022
MONTH()
获取月份
select MONTH(NOW())
4
DAYOFMONTH()
获取在月份中所在的天数
select DAYOFMONTH(NOW())
4
DAYOFYEAR()
获取在年中所在的天数
select DAYOFYEAR(NOW())
94
WEEKDAY()
获取日期是星期几 (0-代表星期一、1-代表星期二)
select WEEKDAY(NOW());
0
DAYOFWEEK()
获取日期是星期几 (1-代表星期天、2-代表星期一)
select DAYOFWEEK(NOW());
2
WEEKOFYEAR()
获取日期是年中的第几周
select WEEKOFYEAR(NOW());
14
TO_DAYS()
获取从0000-00-00到日期的天数
SELECT TO_DAYS(NOW());
738614
HOUR()
获取小时
SELECT HOUR(NOW());
22
MINUTE()
获取分钟
SELECT MINUTE(NOW());
50
SECOND()
获取秒
SELECT SECOND(NOW());
17
10、日期格式
格式
描述
%Y
年,4 位
%y
年,2 位
%M
月 英文表示 January
%b
月 英文缩写表示 Apr
%m
月,数值(00-12)
%c
月,数值(0-12)
%d
月的天,数值(00-31)
%e
月的天,数值(0-31)
%j
年的天 (001-366)
%H
小时 (00-23)
%I
小时 (01-12) 0时代表12 1时代表1
%k
小时 (0-23)
%i
分钟,数值(00-59)
%S
秒(00-59)
%s
秒(00-59)
%f
微秒
%T
时间, 24-小时 (hh:mm:ss)
%r
时间,12-小时(hh:mm:ss AM 或 PM)
%p
AM 或 PM
%a
星期名缩写 例如Mon
%W
星期名 例如Monday
%w
周的天 (0=星期日, 6=星期六)
%U
周 (00-53) 星期日是一周的第一天
%u
周 (00-53) 星期一是一周的第一天
%V
周 (01-53) 星期日是一周的第一天,与 %X 使用
%v
周 (01-53) 星期一是一周的第一天,与 %x 使用
%X
年,其中的星期日是周的第一天,4 位,与 %V 使用
%x
年,其中的星期一是周的第一天,4 位,与 %v 使用
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦