【问题标题】:How to add a month by two如何将一个月加两个
【发布时间】:2015-02-17 02:42:32
【问题描述】:

首先我使用这个查询来选择月份的名称。

SELECT SUBSTRING(DATENAME(month, (SELECT DATEPART(mm,lco_Date)+2
FROM aCT.dbo.iPLEX_BULK_PO_PARM WHERE Recid = '81a50399-e383-41a0-9196-2eaaa42b0ee8' AND season_id = '2015-SS')),1,3)

我的 lco_date 月份是 2 月,即 FEB。然后 + 2 是 4,即 APR。现在,当我运行整个代码时,它只显示 JAN,我很困惑。

我使用此代码确定月份编号,并在 4 的结果中成功。这是我添加的子字符串,但我没有得到正确的月份名称。有人可以帮忙吗?

(SELECT DATEPART(mm,lco_Date)+2
FROM aCT.dbo.iPLEX_BULK_PO_PARM WHERE Recid = '81a50399-e383-41a0-9196-2eaaa42b0ee8' AND season_id = '2015-SS')

【问题讨论】:

    标签: mysql sql date select


    【解决方案1】:

    您是否尝试过使用 DATEADD 或任何等价物? DATEADD 将要添加的日期部分(例如:日、月等)、要添加的间隔数以及日期作为参数。该数字可以是正数,表示将来的日期,也可以是负数,表示过去的日期。

    SELECT DATEADD(month,2,lco_Date) AS OrderPayDate FROM aCT.dbo.iPLEX_BULK_PO_PARM WHERE Recid = '81a50399-e383-41a0-9196-2eaaa42b0ee8' AND season_id = '2015-SS')
    

    完整的语法见这里: http://www.w3schools.com/sql/func_dateadd.asp

    【讨论】:

      【解决方案2】:

      我假设因为您的子查询返回值 4,您基本上尝试以下操作:

      SELECT SUBSTRING(DATENAME(month, 4),1,3)
      

      但第二个参数必须是日期,而不仅仅是整数。像这样的东西怎么样:

      SELECT SUBSTRING(
      DATENAME(month,
         CAST('2000-'
              + CAST((SELECT DATEPART(mm,lco_Date)+2 FROM aCT.dbo.iPLEX_BULK_PO_PARM WHERE Recid = '81a50399-e383-41a0-9196-2eaaa42b0ee8' AND season_id = '2015-SS') AS varchar)
              + '-01' AS DateTime)
         )
      ,1,3)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-12
        相关资源
        最近更新 更多