mysql中怎么查询一周内,三个月内,半年内的数据大神求解答

mysql中怎么查询一周内,三个月内,半年内的数据大神求解答,第1张

mysql中怎么查询一周内,三个月内

使用sql语句查询日期在一周内的数据

select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年的数据

select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查询当天的所有数据

SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天

SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 // 上一月

--查询当天:

select * from info where DateDiff(dd,datetime,getdate())=0

--查询24小时内的:

select * from info where DateDiff(hh,datetime,getDate())<=24

--info为表名,datetime为数据库中的字段值

--查询当天:

select * from info where DateDiff(dd,datetime,getdate())=0

--查询24小时内的:

select * from info where DateDiff(hh,datetime,getDate())<=24

--info为表名,datetime为数据库中的字段值

Sql代码

--查询当天记录另类的方法

SELECT *

FROM j_GradeShop

WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')

AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)

ORDER BY GAddTime DESC

--查询当天记录另类的方法

SELECT *

FROM j_GradeShop

WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')

AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)

ORDER BY GAddTime DESC

DATEDIFF 函数:

语法:

DATEDIFF ( datepart , startdate , enddate )

备注:enddate 减去 startdate。如果 startdate 晚于 enddate,则返回负值。

如果结果超出整数值范围,则 DATEDIFF 将产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。

跨分钟、秒和毫秒等边界计算的方法使得 DATEDIFF 指定的结果在所有数据类型中均一致。结果是带正负号的整数值,它等于跨第一个和第二个日期间的 datepart 边界数。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之间的星期数是 1。

可以再MSSQL中测试:

Sql代码

--两个时间差刚好是24

--打印的方式

print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')

--查询的方式

print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')

--两个时间差刚好是24

--打印的方式

print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')

--查询的方式

print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')

Sql代码

--本月记录

SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=0

mysql中怎么查询一周内,三个月内\x0d\x0a使用sql语句查询日期在一周内的数据\x0d\x0aselect * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年的数据\x0d\x0aselect * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查询当天的所有数据\x0d\x0a SELECT * FROM A where datediff(d,datetime,getdate()) 回答于 2022-12-11

楼主没有详细的说明 使用的是什么数据库.

那我只有慢慢解释了:

第一步,首先要把那个 字符类型的数据, 转换为日期类型:

Oracle 使用

TO_DATE(YXQX, 'YYYYMMDD')

SQL SERVER 使用

CONVERT(datetime, YXQX, 112)

MYSQL 使用

STR_TO_DATE(YXQX, '%Y%m%d')

第二步,如何表示出半年内将要到期的商品。

也就是 这个 转换后的日期, 要大于今天, 小于半年后

需要使用2个函数, 一个是今天, 一个是 半年后(也就是 6个月以后)

今天的函数:

Oracle 使用

SYSDATE

SQL Server 使用

GETDATE()

MySQL 使用

CURRENT_DATE()

今天+6个月的 *** 作

Oracle 使用

ADD_MONTHS(sysdate, 6)

SQL Server 使用

DATEADD(mm, 6, GETDATE() )

MySQL 使用

DATE_ADD( CURRENT_DATE(), INTERVAL 6 MONTH)

最后的写法就是:

Oracle:

TO_DATE(YXQX, 'YYYYMMDD') >SYSDATE

AND TO_DATE(YXQX, 'YYYYMMDD') <ADD_MONTHS(sysdate, 6)

SQL SERVER

CONVERT(datetime, YXQX, 112) >GETDATE()

AND CONVERT(datetime, YXQX, 112) <DATEADD(mm, 6, GETDATE() )

MYSQL

STR_TO_DATE(YXQX, '%Y%m%d') >CURRENT_DATE()

AND STR_TO_DATE(YXQX, '%Y%m%d') <DATE_ADD( CURRENT_DATE(), INTERVAL 6 MONTH)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5897803.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存