【发布时间】:2016-03-01 01:38:20
【问题描述】:
我是 SQL 新手,正在学习基础知识。我进行了搜索,但没有找到我需要的确切答案。
我有一张表格,其中显示了已购买产品的客户以及他们购买的datetime。该列称为SaleDate。 datetime 的格式(例如)如下所示:
2015-08-21 00:00:00.000
2014-03-17 00:00:00.000
我需要使用查询来仅显示 2015 年 12 月期间购买的产品。我认为 SELECT 或 FROM 语句与我的问题无关。这是我尝试过的两个WHERE 子句。这些都不起作用。
WHERE SaleDate = '2015-12%'
WHERE SaleDate = '%Dec-2015%'
【问题讨论】:
-
下面有一个有用的答案,尤其是。对于 DateTime 列,但请注意,如果您尝试使用 '%' 符号匹配 字符串,则可能需要使用
WHERE Column LIKE ...。 -
虽然之前有人问过批准的答案,但没有一个好的答案。它将表列包装在一个函数中,该函数使列上的任何索引都无用,并且总是强制扫描而不是搜索。
-
此处接受的答案是重复问题中建议答案的副本。我认为我们不应该仅仅因为接受的答案不是最好的就注销重复的。在所有建议的答案中,我最喜欢 DATEDIFF() 答案。我仍然说这是一个骗局。
标签: sql-server