您的位置:首页 > 数据库 > MySQL

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

2017-12-13 20:34 162 查看
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等函数的用法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql sqlserver