หาวันเกิดโดยไม่สนปี


Home Page  |   รายการบทความ   |   ลิงค์ที่เกี่ยวข้อง   |   laploy.com  |  เกี่ยวกับผู้เขียน

หาวันเกิดโดยไม่สนปี

กลางดีกคืนหนึ่งขณะที่ผู้เขียนกำลังสะลึมสะลือมีผู้อ่านท่านหนึ่งถามมาด้วย MSN ว่าจะเขียนคิวรีอย่างไรให้หาวันเกิดของพนักงานที่เกิดในระหว่างวันและเดือนหนึ่งๆ โดยไม่สนใจว่าเกิดปีอะไร ผู้เขียนเดาว่าจะนำไปใช้ส่งอีเมลอวยพรวันเกิดหรืออะไรสักอย่าง โดยมีการทำงานดังนี้

SELECT * FROM Table WHERE

BirthDate มีค่าระหว่างวันเริ่มและวันจบโดยไม่จนใจปี

ผู้เขียนไปนอนพอตื่นมาวันรุ่งขึ้นก็เปิดโปรแกรม Microsoft SQL Server Management Studio เขียนคิวรีทดสอบกับดาต้าเบส Northwind (2008) ที่มีตารางเก็บข้อมูลพนักงานพร้อมวันเกิดดังนี้

จะเห็นว่ามีพนักงานทั้งหมดเก้าคน เกิดกันตั้งแต่ปี 1948 ไปจนถึง 1966 ต่อมาผู้เขียนเขียนสคริปต์คัดกรองเอาเฉพาะผู้ที่เกิดวันที่ 1 ถึงวันที่ 9 เดือนมกราคมถึงมีนาคม โดยไม่สนใจว่าเกิดปีอะไร ได้เป็นคิวรีหน้าตาแบบนี้

 

 ไม่อยากพิมพ์ใช่ไหมครับ ก๊อปปี้โค้ดข้างล่างนี้ได้เลย

USE Northwind;
GO
DECLARE @StartDate DATETIME;
DECLARE @EndDate DATETIME;
SET @StartDate = CONVERT(datetime, '2009-01-01');
SET @EndDate = CONVERT(datetime, '2009-03-09');
SELECT EmployeeID,LastName,BirthDate
FROM Employees
WHERE (MONTH(BirthDate) >= MONTH(@StartDate) and 
       MONTH(BirthDate) <= MONTH(@EndDate)) and
      (DAY(BirthDate) >= DAY(@StartDate) and 
       DAY(BirthDate) <= DAY(@EndDate))
GO

โฆษณา

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google photo

You are commenting using your Google account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: