【问题标题】:SQL Server : create future datesSQL Server:创建未来日期
【发布时间】:2011-10-12 13:17:00
【问题描述】:

如何在 SQL 中创建未来日期?例如,我希望能够使用我的日期范围并仅显示下个月的所有内容(采购订单),然后再显示两个月等。我已将 fn NOW() 用于当前日期/时间,但这显示下个月的记录等对我没有任何帮助。

谢谢

这是针对在 SQL Server 2008 R2 中执行的 SQL 查询。

【问题讨论】:

  • 你将如何使用它?您是否需要针对日期列表进行外部联接,还是仅用作搜索过滤器?

标签: sql sql-server sql-server-2008-r2


【解决方案1】:

如果你使用 MySQL,你可以使用:

SELECT date_col FROM your_table
WHERE date_col BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 1 MONTH)

对于 MS-SQL(应该可以):

SELECT date_col FROM your_table
WHERE date_col BETWEEN GETDATE() AND DATEADD(Month, 1, GETDATE())

对于 Oracle(应该可以):

SELECT date_col FROM your_table
WHERE date_col BETWEEN SYSDATE AND add_months(SYSDATE, 1)

【讨论】:

    【解决方案2】:

    您可以使用DATEADD 函数来创建相对于另一个日期的日期。以下调用将生成一个恰好在未来一个月的日期:

    DATEADD(month, 1, GETDATE())
    

    您可以使用负数来后退以及前进。您可以使用许多其他增量,例如年、日、周、季度、毫秒等。

    【讨论】:

      猜你喜欢
      • 2013-10-31
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2014-09-04
      相关资源
      最近更新 更多