今天有份資料表要我查出最新日期的所有資料做成API,也就是說時間是最新的那一天(年、月、日)的所有資料,但是問題來了,日期欄位的時間最小單位是有到秒的,一直再想要怎麼解決,因為怎麼抓都只抓到一筆最新日期的資料XD
本來打算使用ASP.NET來解決了,
後來才發現原來SQL那麼猛可以做得到(感謝賈斯丁大大><),
還以為SQL要取得年月日很麻煩,但其實並不複雜,那就來記錄一下ㄅ!
SQL Server 找出最新日期的所有資料
從
SQL語法取當天日期Getdate()
看到只取得年月日的方法。
Convert(varchar(10),GetDate(),111)
將時間轉成字串,格式為YYYY/MM/DD。
搭配MAX()函式,就解決了我的問題了XDD (將時間的分跟秒去掉)。
SQL如下:
Select Max(Convert(varchar(10),[DateTime型態的欄位名稱],111)) from [資料表名稱] as [新欄位名稱]
以上SQL的結果就可以只取得最大(新)的那一天的年、月、日(YYY/MM/DD)格式的字串。
Select * From [資料表]
where ([DateTime型態的欄位名稱] >
(Select Convert (datetime,
Max(Convert(varchar(10),[DateTime型態的欄位名稱],111))) AS [新欄位名稱]
FROM [資料表名稱]
將取得的最大值年月日日期字串使用Convert轉回datetime型態,就會變成年分跟秒是00/00的時間型態。
再取得大於的個日期的資料,就可以抓到全部大於這個日期的資料了><
SQL的Convert可參考。