กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
318 1
URL.หัวข้อ /
URL
DateSerial in SQL Server
IF object_ID('dbo.DateSerial') is not null
DROP FUNCTION DateSerial
GO
CREATE FUNCTION DateSerial(
@Year varchar(4)
, @Month varchar(2)
, @Day varchar(2))
RETURNS datetime
AS
BEGIN
declare @Date datetime
select @Date = convert(datetime, @Year + '/' + @Month + '/' + @Day)
return @Date
END
GO
การเรียกใช้งาน
select dbo.DateSerial('2003','10','22')
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
Time: 0.1201s
การใช้ DateAdd() เพื่อหาวันนี้ของเดือนที่แล้ว
select dateadd("mm",-1,getdate())
จะได้เดือนที่ผ่านมา ตรงนี้จะทำให้ไม่ว่าเดือนปัจจุบันจะเป็นเดือน มกราคม ปี 2003 เดือนก่อนหน้านั้นจะเป็น ธันวาคม 2002
จากนั้นก็จะใช้ DatePart() เพื่อหาหมายเลข เดือน และ ปี ออกมา
ก็จะได้ เดือน 12 และปี 2002
เมื่อนำมาเขียนเป็น SQL จะได้
Select ข้อมูลที่ต้องการ From ตารางเป้าหมาย Where เดือนของข้อมูล = เดือน(ของเดือนการคำนวณวันที่ปัจจุบัน - 1) AND ปีของข้อมูล = ปี (ของเดือนการคำนวณวันที่ปัจจุบัน - 1)
นี่คือตัวอย่าง SQL ที่เลือกข้อมูลของเดือนที่แล้ว
select qnumber, qdate
from question
where datepart("mm",qdate) = datepart("mm",dateadd("mm",-1,getdate()))-1
and datepart("yy",qdate) = datepart("yy",dateadd("mm",-1,getdate()))