mysql 时间相关问题
算是mysql一些常用到的时间相关问题的笔记汇总吧,防止自己忘记。以后再慢慢补充完善下。
#mysql返回时间的函数
NOW() 函数返回当前的日期和时间。
CURDATE() 函数返回当前的日期。
CURTIME() 函数返回当前的时间。
NOW() | CURDATE() | CURTIME() |
---|---|---|
2008-12-29 16:25:46 | 2008-12-29 | 16:25:46 |
使用实例
CREATE TABLE orders
(
id int NOT NULL,
start_time datetime NOT NULL DEFAULT NOW(),
PRIMARY KEY (id)
)
#TIMESTAMPDIFF函数
TIMESTAMPDIFF(unit,begin,end);
TIMESTAMPDIFF函数其中begin和end两个参数的格式应为是DATE或DATETIME表达式,并且允许两个参数的类型不同。例如,begin是DATE值,end可以是DATETIME值。 如果使用DATE值,则将其视为时间部分为“00:00:00”的DATETIME值。
unit参数是确定函数返回结果的单位(天,月,日等),返回结果为整数。 以下是函数可选择的输出单位:
MICROSECOND 微秒
SECOND 秒
MINUTE 分钟
HOUR 小时
DAY 天
WEEK 周
MONTH 月份
QUARTER
YEAR 年份
注意,此函数填入参数时若begin大于end,则函数返回的结果为负数
select start_date,end_date,TIMESTAMPDIFF(MONTH,start_date,end_date) as one_days,TIMESTAMPDIFF(MONTH,end_date,start_date) as two_days from shops_leases
结果如下