如何通过在where where condition中传递month来从数据库中检索行

时间:2012-03-31 05:46:43

标签: sql sql-server-2005

如何通过在where where条件中传递月份来从SQL Server数据库中检索行,因为我已使用datetime数据类型作为日期列。

SQL Server是否有任何功能,我可以在那里发送月份并相应地获取该行?

2 个答案:

答案 0 :(得分:2)

我会根据日期列中的月份创建一个索引计算列。这样,查询将按比例缩放,因为您将为查询索引特定列。

使用Month(yourdatecolumn)= somemonth将在查询执行时进行表扫描(如读取每个值以确定月份),因此对于大量数据来说不是一个好主意。

请参阅this article,了解为什么在where子句中使用函数是错误的。

答案 1 :(得分:1)

SELECT * FROM table
   WHERE MONTH(datecolumn) = 1

这将返回1月份的所有记录