2011-12-13 30 views
9

Làm thế nào để bạn chọn một cột datetime theo tháng?MS SQL chọn datetime theo tháng?

TABLE A 
TITLE MY_DATETIME 
blah 2011-03-26 05:44:43.213 

SELECT * 
FROM TABLE A 
WHERE MY_DATETIME = "August" 
+4

'WHERE month (MY_DATETIME) = 8' – Raihan

+0

@MGA: Có trong SQL Server 2008. Ref: http://msdn.microsoft.com/en-us/library/ms187813.aspx – Raihan

+0

@MGA: thực sự? Đã ở đó mãi mãi http://msdn.microsoft.com/en-us/library/ms187813.aspx và http://msdn.microsoft.com/en-us/library/aa933239 (SQL.80).aspx – gbn

Trả lời

18
SELECT * 
FROM TABLE A 
WHERE DATEPART(month, MY_DATETIME) = 8 

Hoặc, ít đáng tin cậy based on language thiết lập:

... 
WHERE DATENAME(month, MY_DATETIME) = 'August' 
+0

Có thể, không có giải pháp nào tốt hơn cho vấn đề khi nó được đặt, nhưng đây là cách đúng để lập chỉ mục Quét. –

+0

@Igor: các yêu cầu cho tháng chỉ có nghĩa là kiểm tra phạm vi ngày không khả thi. Có thể là một câu hỏi kém mặc dù – gbn

0
SELECT * 
FROM TABLE A 
WHERE DATENAME(MONTH, MY_DATETIME) = 'August' 
+0

Điều này xảy ra trong một số trường hợp lẻ: http://stackoverflow.com/a/1500018/27535 – gbn

0

tôi sử dụng EXTRACT chức năng thay vì DATEPART. DATEPART chức năng không tồn tại trong mysql của tôi.