[英]NetSuite formula search for data between first/last day of future month
[英]get data between first day and last day of month of selected date
如何在SQL中的特定月份的第一天和最后一天之間獲取數據?
以下是sql查詢請幫忙
DECLARE @mydate DATETIME
SELECT @mydate = GETDATE()
select TransactionCode from ReceiptsPayments
where ReferenceDate >= (SELECT CONVERT(VARCHAR(25),
DATEADD(dd,-(DAY(@mydate)-1),@mydate),
101) AS Date_Value)
AND ReferenceDate <= (SELECT CONVERT(VARCHAR(25),
DATEADD(dd,
-(DAY(DATEADD(mm,1,@mydate))),
DATEADD(mm,1,@mydate)),
101))
GO
試試這個-
DECLARE @mydate DATETIME
SELECT @mydate = GETDATE()
SELECT TransactionCode
FROM dbo.ReceiptsPayments
WHERE MONTH(ReferenceDate) = MONTH(@mydate)
AND YEAR(ReferenceDate) = YEAR(@mydate)
select TransactionCode
from ReceiptsPayments
where
month(ReferenceDate) = month(@mydate)
and
year(ReferenceDate) = year(@mydate) ;
DECLARE @mydate DATETIME
SELECT @mydate = GETDATE()
select TransactionCode
from ReceiptsPayments
where ReferenceDate >= DATEADD(month, DATEDIFF(month, 0, @mydate), 0)
and ReferenceDate <= DATEADD(day, -1, DATEADD(month, DATEDIFF(month, 0, @mydate) + 1, 0))
我自己使用DATEADD
/ DATEDIFF
模式:
select TransactionCode from ReceiptsPayments
where
ReferenceDate >= DATEADD(month,DATEDIFF(month,'20010101',GETDATE()),'20010101') and
ReferenceDate <= DATEADD(month,DATEDIFF(month,'20010101',GETDATE()),'20010131')
這有點可愛,因為當要求在每個月的31日增加月份數時,它會自動調整為到達月份的正確結束日期。
另外,如果您的專欄中有時間,一個更好的查詢將是:
select TransactionCode from ReceiptsPayments
where
ReferenceDate >= DATEADD(month,DATEDIFF(month,'20010101',GETDATE()),'20010101') and
ReferenceDate < DATEADD(month,DATEDIFF(month,'20010101',GETDATE()),'20010201')
然后使用下個月的1號進行<
比較。 通常,這對於具有時間成分的datetime
更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.