我的SQL查询有一个小问题.我正在使用GETDATE函数,但是,假设我在下午5点执行脚本,它将在2011年12月12日下午5点到2011年12月18日下午5点之间调出记录.我怎样才能让它调出整个2011年12月12日-2011年12月18日的记录基本上忽略时间.

我的 playbook :

WHERE Orders.OrderStatus = 'Shipped'  
AND Orders.ShipDate > (GETDATE()-6)  

推荐答案

在SQLServer2008及更新版本中,可以将DateTime转换为Date,这将删除时间元素.

WHERE Orders.OrderStatus = 'Shipped'  
AND Orders.ShipDate >= (cast(GETDATE()-6 as date))  

在SQL Server 2005及以下版本中,您可以使用:

WHERE Orders.OrderStatus = 'Shipped'  
AND Orders.ShipDate >= DateAdd(Day, Datediff(Day,0, GetDate() -6), 0)

Sql相关问答推荐

在SQL Server中使用LEFT连接包含特定记录

SQL(PostgreSQL)从条件创建点表

使用sede获取不一定有两个不同标签的所有问题

retrofit AWS Athena中的JSON

Select 起始参数和截止参数之间的间隔,包括与期间重叠的参数

将重复的值更新为下一个空闲数字

如何查询jsonb列是一个对象数组?

判断序列索引处的序列是否完整

重用传递给 node 的参数-postgres upsert查询

来自按PostgreSQL分组的最小日期

Proc SQL Select Distinct SAS

将最近的结束日期与开始日期相匹配

通过ID和数据找到每个不同的值

Oracle 21c 中的递归查询回顾过go 3 周

验证某个日期前后的连续代码

按公司和产品查询最近发票的平均价格的SQL查询

SQL的左连接在多对多关系情况下使用

按所选的值将记录分组到不同的列中

基于源表的 SQL INSERT、UPDATE 和 DELETE

奇怪的甲骨文行为