Sql server 如何在SQL Server上将日期时间结果转换为日期
以下是返回DATETIME结果时不起作用的逻辑。任何帮助都将不胜感激。我已尝试将数据类型更改为DATETIME2,但不起作用 代码如下:Sql server 如何在SQL Server上将日期时间结果转换为日期,sql-server,date,Sql Server,Date,以下是返回DATETIME结果时不起作用的逻辑。任何帮助都将不胜感激。我已尝试将数据类型更改为DATETIME2,但不起作用 代码如下: DECLARE @CurrentDate DATE = '0001-01-01' SELECT DATEADD(QQ, DATEDIFF(QQ, 0, @CurrentDate), 0) AS FirstDayOfQuarter, DATEADD(QQ, DATEDIFF(QQ, -1, @CurrentDate), -1) AS LastD
DECLARE @CurrentDate DATE = '0001-01-01'
SELECT DATEADD(QQ, DATEDIFF(QQ, 0, @CurrentDate), 0) AS FirstDayOfQuarter,
DATEADD(QQ, DATEDIFF(QQ, -1, @CurrentDate), -1) AS LastDayOfQuarter,
CONVERT(VARCHAR(10), DATEADD(WEEK, DATEDIFF(WEEK, 0, DATEADD(DAY, (6-
DATEPART(DAY, @CurrentDate)), @CurrentDate)),0),120) AS FirstMondayOftheMonth
日期数据类型可以处理从1582-10-15到9999-12-31的数据,您可以在这里尝试“0001-01-01”
详细信息取决于版本,但是选择CONVERT(date,getdate())可能是最好的方法(假设您在2008年或更高版本,此时您应该是这样)
显然,用需要转换的内容替换getdate()。可能重复感谢您的回复。我刚读了你发送的链接,发现1582-10-15到9999-12-31实际上是给Informatica的。@A Hettinger谢谢你的回复。我使用的是SQL Server 2017,当我使用DATEDIFF和DATEADD函数返回DATETIME结果时,问题就出现了。您应该能够使用CONVERT包装每个DATEDIFF和DATEADD调用。