哪家运营商是正确的我的命令
我与SQL Server 2008工作,我用这个命令:哪家运营商是正确的我的命令
SELECT Min(id),
[idfromindex]
FROM ordersview
WHERE [idfromindex] IN(SELECT DISTINCT [idfromindex]
FROM ordersview
WHERE isobserve = 'True'
AND ispay = 'True'
AND orderdate >= '1390/09/01'
AND orderdate <= '1391/09/27')
GROUP BY [idfromindex]
但如果恰好与orderdate='1390/09/01'
或orderdate='1391/09/27'
值的记录也不会告诉他们,那只能说明结果比他们更大,更低,但如果它存在,我也想展示同样的结果。
orderDate存储类型为日期
会不会改变的条件是>= '1390/09/01'
和< '1391/09/28'
更有意义?这样,如果日期被注册为1390/09/01 23:59'. Date conditions tend to assume the exact time is
00:00`,您可以删除时间组件。当然,这取决于你的列数据类型是什么(日期时间与日期)。
其实,'1390/08/31'应该是> ='1390/09/01'。记录时间戳'1390/08/31 xx:xx'应排除在外。 – 2013-02-10 20:55:22
你是对的,我迷惑了自己。我改变了我的答案,以避免混淆。 – Deif 2013-02-11 12:09:09
DATETIME数据类型包含日期和时间信息
如果你只提供了日期部分,SQL设置时间部分作为一天的开始,这已是半夜...
所以上添加+1右或添加-1左将求解你的问题..
SELECT DISTINCT [idfromindex]
FROM ordersview
WHERE isobserve = 'True'
AND ispay = 'True'
AND orderdate >= dateadd(day,1,'1390/09/01')
AND orderdate <= dateadd(day,1,'1391/09/27')
不“订购日期”有时间分量呢? – 2013-02-10 20:47:50