我在完成一项简单任务时遇到了悲惨的经历。我想每个月每6个月分一次数据。我没有得到任何输出。我的SQL技能非常糟糕。我经常搜索解决方案,他们给了我一些想法,但我无法输出。
以下是我的尝试:
SELECT TOP 10000 CONVERT(VARCHAR,DATEADD(HOUR,-4,DATEADD(s, ch.dateTimeOrigination, '19700101')), 121) as CallDate
FROM [dbo].[CallData] AS ch
WHERE LEN(ch.callingPartyNumber) = 4 AND
CONVERT(VARCHAR,DATEADD(HOUR,-4,DATEADD(s, ch.dateTimeOrigination, '19700101')), 121) BETWEEN CONVERT(VARCHAR(10), GETDATE(), 110) AND CONVERT(VARCHAR(10), DATEADD(month, -6, GETDATE()), 110)
该表肯定包含我尝试查询的时间段的数据。所以我不确定为什么这不给我任何输出。我将非常感谢你的帮助。谢谢。
答案 0 :(得分:0)
我相信您的#
值是倒退的。
编辑:BETWEEN
子句中的CONVERT
语句也是不同的格式,因此当您比较varchars时,比较失败。您应该使用WHERE
。
试试这个:
DATETIME