如何以某种格式检索上个月的最后一天?

时间:2013-04-30 08:48:31

标签: sql sql-server

我知道如何在MS-SQL-Server

中检索上个月的最后一天
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))

这给了我结果

2013-03-31 23:59:59.000

现在我需要更改此格式,以便我像这样接收

mm/dd/yy

有什么建议吗?

由于

3 个答案:

答案 0 :(得分:2)

试试这个 -

DECLARE @Date DATETIME
SELECT @Date = GETDATE()

SELECT CONVERT(VARCHAR(10), DATEADD(MONTH, DATEDIFF(MONTH, 0, @Date) + 1, 0) - 1, 101)

输出:

04/30/2013

答案 1 :(得分:1)

如果您使用的是SQL Server 试试这个

SELECT CONVERT(varchar, DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)),101)

SELECT CONVERT(varchar, DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0)),1)

答案 2 :(得分:0)

-- Set date format to day/month/year.
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: 2008-12-31 09:01:01.123
SET DATEFORMAT dmy;
GO
DECLARE @datevar datetime2 = '12/31/2008 09:01:01.1234567';
SELECT @datevar;
GO
-- Result: Msg 241: Conversion failed when converting date and/or time -- from character string.

GO