2012-04-17 171 views
1

我有一個包含1000條記錄的表。一列是採用格式'2008-01-02 00:00:00.000'的發佈日期。我想查詢SQL DB以獲取最新發布日期的記錄。我應該做一個比較還是有其他一些過濾器?SQL日期比較

+0

那麼,是'2008-01-02 00:00:00.000'類型'DATETIME'或'CHAR'?如果它不是'DATETIME',它代表1月2日或2月的第一個? – Lamak 2012-04-17 18:57:01

回答

4
SELECT * FROM tbl WHERE publishdate = (SELECT MAX(publishdate) FROM tbl) 
+0

謝謝,順便說一句,我如何將這個發佈日期轉換爲SQL中的'mm/dd/yy'? – JNPW 2012-04-17 19:13:35

+1

@javaiText'CONVERT(varchar(8),publishdate,1)' - 參見http://msdn.microsoft.com/en-us/library/ms187928.aspx – 2012-04-17 19:29:46

3

如果你只想要一個記錄:

SELECT TOP 1 * FROM mytable ORDER BY publishdate DESC 

如果你想與最高日出版的所有書籍,使用凱德魯的查詢。

+0

如何將此發佈日期轉換爲'mm/dd/yy'在SQL? – JNPW 2012-04-17 19:21:05

+1

請在格式化日期中查看此鏈接,但請記住,格式化日期後,返回的日期實際上將是文本(varchar)數據類型,而不是Date數據類型。日期就是這樣,你不能改變服務器如何存儲它,你只能使用格式來告訴SQL Server以某種方式顯示它。 http://stackoverflow.com/questions/759292/to-change-date-format-in-sql – David 2012-04-17 19:23:15

0

如果publishdate爲datetime

SELECT TOP 1 * 
FROM tbl 
ORDER BY publishdate DESC