«

mysql取得日期值的一些函数使用示例(前一天,某一天,日期差值)

时间:2024-2-15 16:07     作者:韩俊     分类: Mysql


mysql取得日期值的一些函数使用示例。

(1)取得当前日期:

mysql> SELECT curdate();

+------------+
| curdate()  |
+------------+
| 2017-02-28 |
+------------+

下面的两个时间函数等同于 curtime():

current_time()

current_time
 
(2)mysql取得当前日期+时间:

mysql> select now();

+---------------------+
| now()               |
+---------------------+
| 2017-02-28 22:10:40 |
+---------------------+

除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:

current_timestamp()   current_timestamp

localtime()   localtime

localtimestamp()   localtimestamp    

这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。

另外 sysdate() 日期时间函数获取值的格式和 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。

(3)取得前一天:

mysql> select date_sub(curdate(),interval 1 day);

+------------------------------------+
| date_sub(curdate(),interval 1 day) |
+------------------------------------+
| 2017-02-28                         |
+------------------------------------+
 
括号中为当天时间的前一天,如果统计前几天就将括号中的’1’改成相应的天数。如果要算月或年,直接将day改为month或year即可。

(4)取得前一天的年份:

mysql> SELECT YEAR(DATE_SUB(CURDATE(),INTERVAL 1 DAY));

+------------------------------------------+
| YEAR(DATE_SUB(CURDATE(),INTERVAL 1 DAY)) |
+------------------------------------------+
|                                     2017 |
+------------------------------------------+

date_sub()函数的例子:

date_sub('2017-02-25',interval 1 day) 表示 2017-02-24

date_sub('2017-02-25',interval 0 day) 表示 2017-02-25

date_sub('2017-02-25',interval -1 day) 表示 2017-02-26

date_sub('2017-02-31',interval -1 day) 表示 2012-06-01

date_sub(curdate(),interval 1 day) 表示 2013-05-19

date_sub(curdate(),interval -1 day) 表示 2013-05-21

date_sub(curdate(),interval 1 month) 表示 2013-04-20

date_sub(curdate(),interval -1 month) 表示 2013-06-20

date_sub(curdate(),interval 1 year) 表示 2017-02-20

date_sub(curdate(),interval -1 year) 表示 2014-05-20

(5)MySQL 取得日期、时间相减后的差值。

datediff(date1,date2), timediff(time1,time2)

MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数。

select datediff('2008-08-08', '2008-08-01'); -- 7

select datediff('2008-08-01', '2008-08-08'); -- -7

MySQL timediff(time1,time2):两个时间相减 time1 - time2,返回 time 差值。

select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 08:08:08

select timediff('08:08:08', '00:00:00'); -- 08:08:08

注意:timediff(time1,time2) 函数的两个参数类型必须相同。

标签: mysql

热门推荐