【问题标题】:Teradata Equivalent to this SQL Server DATETIME code?Teradata 相当于此 SQL Server DATETIME 代码?
【发布时间】:2019-03-13 12:10:18
【问题描述】:

您好,我不熟悉 SQL Server,需要将其转换为可用的 Teradata SQL。有人可以帮忙吗?非常感谢。

DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME

SET @StartDate = CAST(DATEPART(MM, GETDATE())-1 AS VARCHAR) + '/01/' + 
    CAST(DATEPART(YYYY, GETDATE()) AS VARCHAR)

SET @EndDate = EOMONTH(@StartDate)

--This will allow you to see the values without having to run a select query filter.
PRINT @StartDate
PRINT @EndDate

SELECT * 
FROM Product
WHERE DateCreated BETWEEN @StartDate AND @EndDate

【问题讨论】:

    标签: sql date teradata


    【解决方案1】:

    要在 Teradata 中使用变量,您需要编写存储过程。

    @StartDate 设置为上个月的第一天:

    Cast(Trunc(Add_Months(Current_Date,-1), 'mon') AS TIMESTAMP(0))
    

    @EndDate到上个月的最后一天:

    Cast(Last_Day(Add_Months(Current_Date,-1)) AS TIMESTAMP(0))
    

    今天 2018-10-08 这将返回:

    2018-09-01 00:00:00
    2018-09-30 00:00:00
    

    当然,Where 条件不包括一个月最后一天的任何行。

    DATEPART(MM, GETDATE())-1 返回0 时,计算将在一月份失败:-)

    【讨论】:

      猜你喜欢
      • 2021-05-05
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 2017-05-12
      • 2018-09-28
      • 2010-10-25
      相关资源
      最近更新 更多