Sql server 返回日期范围从本月1日到永远的T-SQL查询?

Sql server 返回日期范围从本月1日到永远的T-SQL查询?,sql-server,sql-server-2000,Sql Server,Sql Server 2000,有人能告诉我如何编写一个T-SQL查询来返回从本月1日到永远的日期范围吗 换句话说,所有记录的日期都大于2012年8月1日 谢谢 编辑:SQL Server 2000 我不需要日期范围。我只需要本月开始后的所有日期。但我无法硬编码当前月份,因为我不知道它。“其中所有记录的日期都大于2012年8月1日”: 这应该可以避免一些国际化问题。我假设您希望从本月开始的所有内容都“大于或等于”不“大于”。如果您的措辞准确,请将=更改为: SELECT x FROM dbo.table_name

有人能告诉我如何编写一个T-SQL查询来返回从本月1日到永远的日期范围吗

换句话说,所有记录的日期都大于2012年8月1日

谢谢

编辑:SQL Server 2000 我不需要日期范围。我只需要本月开始后的所有日期。但我无法硬编码当前月份,因为我不知道它。

“其中所有记录的日期都大于2012年8月1日”:


这应该可以避免一些国际化问题。

我假设您希望从本月开始的所有内容都“大于或等于”不“大于”。如果您的措辞准确,请将
=
更改为

SELECT x 
  FROM dbo.table_name 
  WHERE DateColumn >= DATEADD(MONTH, 
    DATEDIFF(MONTH, '20000101', CURRENT_TIMESTAMP), '20000101');

您希望永远使用的数据类型可能重复?我不想选择月的第一天。SQLServer2000。我没有选择日期。我正在选择当月第一个之后的所有记录。“第一个之后”或“第一个之后”?例如,您能否澄清您的意图,您是否需要每月第一天的数据?“After”充其量是不明确的。或者只使用
where Mydate>'20120801'
——这在所有版本的SQL Server以及所有语言/区域设置中都是安全的(无需将其显式转换为
日期
——特别是因为
日期
作为数据类型仅在SQL Server 2008中引入,在例如2005中不可用)这个解决方案的问题是你已经硬编码了日期。我可能错了,但我认为这里遇到的编程困难可能是8月1日,而不是构造where子句。我不能使用这种硬编码的解决方案。我需要所有日期在本月1日之后的记录,无论该月是什么。我正在使用SQL Server 2000。太好了!谢谢你,亚伦!这正是我要找的!
SELECT x 
  FROM dbo.table_name 
  WHERE DateColumn >= DATEADD(MONTH, 
    DATEDIFF(MONTH, '20000101', CURRENT_TIMESTAMP), '20000101');