回答:
SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS StartOfMonth
SELECT EOMONTH(@mydate) AS EndOfMonth
は、月の最後の日を与えます。
SQL Server 2012以降:
SELECT DATEADD(DAY,1,EOMONTH(@mydate,-1))
これも機能します:
SELECT DATEADD(DAY,(DATEPART(DAY,@mydate)-1)*(-1),@mydate) AS FirstOfMonth
今月の最初と最後の日:
select dateadd(mm, -1,dateadd(dd, +1, eomonth(getdate()))) as FirstDay,
eomonth(getdate()) as LastDay
SELECT @myDate - DAY(@myDate) + 1
Operand type clash: date is incompatible with int
。あなたが-
日付で演算子を使用しようとしているからだと思いますか?
----Last Day of Previous Month
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE()),0))
LastDay_PreviousMonth
----Last Day of Current Month
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))
LastDay_CurrentMonth
----Last Day of Next Month
SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+2,0))
LastDay_NextMonth
これは新しい関数かもしれませんが、古い関数を使うこともできます:
select DATEFROMPARTS(year(@mydate),month(@mydate),'01')
変数内の日付は、たとえばだった場合'2017-10-29'
には、日付を返します'2017-10-01'
DECLARE @startofmonth date
SET @startofmonth = DATEADD(dd,1,EOMONTH(Getdate(),-2))
-2は先月の最初の日を取得します。つまり、getdate()は10/15/18です。結果は9/1/18になります。-1に変更すると、結果は10/1/18になります。0は翌月の開始、2018年11月1日などです。
または
DECLARE @startofmonth date
SET @startofmonth = DATEADD(dd,1,EOMONTH(@mydate,-1))
SELECT DATEADD (DAY, -1 * (DAY(GETDATE()) - 1), GETDATE())
................................................................. ...................
時間を必要としない場合は、それをDATEに変換するか、時間を0:00:00にしたい場合は、DATEに変換してからDATETIMEに戻します。
SELECT CONVERT (DATETIME,
CONVERT (DATE, DATEADD (DAY, -1 * (DAY(GETDATE()) - 1),
GETDATE())))
GETDATE()を必要な日付に変更します
SQL Server 2012では、
select getdate()-DATEPART(day, getdate())+1
select DATEADD(Month,1,getdate())-DATEPART(day, getdate())
このクエリはMySQLで非常にうまく機能するはずです。
SELECT concat(left(curdate(),7),'-01')
SQLのパラメーターとして渡す日付の最初の日付と最後の日付を取得します。
@date DATETIME
SELECT @date = GETDATE()
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@date)-1),@date),105) AS value,
'First Day of Current Month' AS name
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@date))),
DATEADD(mm,1,@date)),105),
'Last Day of Current Month'
GO
**OutPut**
12/01/2019 First Day of Current Month
12/31/2019 Last Day of Current Month
MySQLでこれを行う方法は次のとおりです。
select DATE_FORMAT(NOW(), '%Y-%m-1')
SELECT FORMAT(GETDATE(), 'yyyy-MM-01')