DECLARE @PreviousMonthStart DATETIME
DECLARE @PreviousMonthEnd DATETIME
SET @PreviousMonthStart = DATEADD(m,DATEDIFF(m,0,GETDATE())-1,0)
SET @PreviousMonthEnd = DATEADD(ms,-2,DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0))
PRINT @PreviousMonthStart
PRINT @PreviousMonthEnd
在上面执行查询时,结果集采用以下格式
Mar 1 2017 12:00AM
Mar 31 2017 11:59PM
但我需要以下格式设置结果
2017-04-01 00:00:00.000
任何帮助
答案 0 :(得分:0)
t-sql的结果是你想要的,但因为你正在使用PRINT
来查看结果,所以在打印之前它会将结果转换为varchar。
如果您只是选择而不是PRINT,它会显示您想要看到的内容。
DECLARE @PreviousMonthStart DATETIME
DECLARE @PreviousMonthEnd DATETIME
SET @PreviousMonthStart = DATEADD(m,DATEDIFF(m,0,GETDATE())-1,0)
SET @PreviousMonthEnd = DATEADD(ms,-2,DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0))
SELECT @PreviousMonthStart -- Result: 2017-03-01 00:00:00.000
SELECT @PreviousMonthEnd -- Result: 2017-03-31 23:59:59.997
PRINT @PreviousMonthStart -- Result: Mar 1 2017 12:00AM
PRINT @PreviousMonthEnd -- Result: Mar 31 2017 11:59PM
答案 1 :(得分:0)
您可以使用print语句添加CONVERT
声明的变量。
DECLARE @PreviousMonthStart DATETIME
DECLARE @PreviousMonthEnd DATETIME
SET @PreviousMonthStart = DATEADD(m,DATEDIFF(m,0,GETDATE())-1,0)
SET @PreviousMonthEnd = DATEADD(ms,-2,DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0))
PRINT CONVERT(VARCHAR(25),@PreviousMonthStart,120)
PRINT CONVERT(VARCHAR(25),@PreviousMonthEnd,120)
<强>输出:强>
2017-03-01 00:00:00
2017-03-31 23:59:59