49

次の形式で月の最後の日を見つける必要があります。

"2013-05-31 00:00:00:000"

誰でも助けてください。

4

15 に答える 15

82

これを試してみてください -

CREATE FUNCTION [dbo].[udf_GetLastDayOfMonth] 
(
    @Date DATETIME
)
RETURNS DATETIME
AS
BEGIN

    RETURN DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @Date) + 1, 0))

END

クエリ:

DECLARE @date DATETIME
SELECT @date = '2013-05-31 15:04:10.027'

SELECT DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @date) + 1, 0))

出力:

-----------------------
2013-05-31 00:00:00.000
于 2013-05-20T09:44:34.967 に答える
14

SQL Server 2012 では次eomonth機能が導入されています。

select eomonth('2013-05-31 00:00:00:000')
-->
2013-05-31
于 2014-10-03T10:55:10.763 に答える
9
declare @date datetime;
set @date = getdate(); -- or some date
select dateadd(month,1+datediff(month,0,@date),-1);
于 2013-05-20T09:39:13.467 に答える
0
Select DATEADD(DAY, -(DAY(DATEADD(MONTH, 1, GETDATE()))),DATEADD(MONTH, 1, GETDATE()))

これはT-sqlでうまく機能します..

GETDATE()クエリの を列名に置き換えます。

于 2015-07-13T12:40:08.720 に答える
-1
TO FIND 1ST and Last day of the Previous, Current and Next Month in Oracle SQL
-----------------------------------------------------------------------------
SELECT 
SYSDATE,
LAST_DAY(ADD_MONTHS(SYSDATE,-2))+1 FDPM,
LAST_DAY(ADD_MONTHS(SYSDATE,-1)) LDPM,
LAST_DAY(ADD_MONTHS(SYSDATE,-1))+1 FDCM,
LAST_DAY(SYSDATE)LDCM,
LAST_DAY(SYSDATE)+1 FDNM,
LAST_DAY(LAST_DAY(SYSDATE)+1) LDNM
FROM DUAL
于 2016-04-21T13:50:47.613 に答える
-1

select DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE())-0, -1) LastDate

于 2020-03-09T07:02:19.080 に答える