SQL 、MySql 查询前几年、几天、几小时的数据

SQL语句查询最近几年和几月的数据

select DateAdd(Month,-3,getdate()) –返回一个时间,根据这个时间点去查询想要的数据即可

–DateAdd函数的详细说明:

–DateAdd(interval, number, date)

–interval 必选。字符串表达式,表示要添加的时间间隔。

–yyyy 年

–q 季度

–m 月

–y 一年的日数

–d 日

–w 一周的日数

–ww 周

–h 小时

–n 分钟

–s 秒

–number 必选,数值表达式。

–表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。

–date 必选。标识查询时的对比时间,getdate()在SQL中说明是现在的时间 。

–例子:

Select DateAdd(Month,-3,getdate()) –以当前时间为准,返回三个月之前的一个时间点

Select DateAdd(yyyy,-3,getdate()) –以当前时间为准,返回三年之前的一个时间点

Select DateAdd(Month,3,getdate()) –以当前时间为准,返回三个月之后的一个时间点

MySql:
mysql 昨天 一周前 一月前 一年前的数据 这里主要用到了DATE_SUB,

参考如下

复制代码 代码如下:

SELECT * FROM yh_content
where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 DAY)
where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 WEEK)
where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 YEAR)
注意:如果数据库中时间以UNIX时间戳的形式存放的话,在时间对比上需要更改为统一格式:

DATE_SUB()返回的是格式化后的时间:2014-05-17

需要用UNIX_TIMESTAMP()转化为UNIX时间戳形式对比:

复制代码 代码如下:

where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY))
where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 WEEK))
where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))
详细请查看MySql时间函数:DATE_SUB、DATE_ADD、UNIX_TIMESTAMP等函数的用法

你可能感兴趣的:(数据库)