Mysql日期类型、时间戳、字符串常用函数及转换

MySQL日期操作与转换
本文介绍了MySQL中日期的获取方法,包括获取当前日期、时间、月份及年份等,并详细展示了日期类型、时间戳和字符串之间的相互转换方式。此外,还提供了一个查询当天记录的示例。

时间获取

1.获取当天日期(日期类型):

mysql> select curdate();
+------------+
| 2018-05-28 |
+------------+

 

2.获取当前时间(日期类型):

mysql> select now();
+---------------------+
| 2018-05-28 13:10:40 |
+---------------------+

 

3.取得前一天日期(日期类型):

mysql> select date_sub(curdate(),interval 1 day);
+--------------+
| 2018-05-27   |
+--------------+

 

4.取得后一天日期(日期类型):

mysql> select date_add(curdate(),interval 1 day);
+------------+
| 2018-05-29 |
+------------+

 

5.获取当前月份(日期类型)

select month(now())   ////获取指定日期月份如:select month('2018-06-05')

+-----------+
| 5         |
+-----------+

 

6.获取当前年份(日期类型)

select year(now())    //获取指定日期年份如:select year('2018-06-05')

+-----------+
| 2018      |
+-----------+

 

 

相互转换

date(日期类型)、时间戳、字符串三者之间的相互转换
 

1.日期类型转字符串

select date_format(now(), '%Y-%m-%d');  

#结果:1452001082  

 

2.时间类型转unix时间戳

select unix_timestamp(now());  

#结果:1452001082  

 

3.字符串转日期类型

select str_to_date('2016-01-02', '%Y-%m-%d %H');  

#结果:2016-01-02 00:00:00  

 

4.字符串转unix时间戳

select unix_timestamp('2016-01-02');  

#结果:1451664000  

 

5.unix时间戳转日期类型

select from_unixtime(1451997924);  

#结果:2016-01-05 20:45:24  

 

6.unix时间戳转字符串

select from_unixtime(1451997924,'%Y-%d-%m');  

//结果:2016-01-05 20:45:24

 

举例:

//查询日期为当天的的记录,add_time为unix时间戳:

//方法一:效率高,适合数据量少的
select add_time,from_unixtime(add_time,'%Y-%m-%d'),curdate() ,date_add(curdate(),interval 1 day)
from ci_book
where add_time between unix_timestamp(curdate()) and unix_timestamp(date_add(curdate(),interval 1 day))

//方法二:效率低,但是写起来简单,适合数据量少的
select add_time,from_unixtime(add_time,'%Y-%m-%d'),curdate() ,date_add(curdate(),interval 1 day)
from ci_book
where from_unixtime(add_time,'%Y-%m-%d') = curdate()

 

 

附表

MySQL日期格式化(format)

165854_6BaA_3477605.png

 

转载于:https://my.oschina.net/u/3477605/blog/1820048

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值