相关文章推荐
玩足球的爆米花  ·  SQL Server ...·  5 天前    · 
低调的炒面  ·  Centos7 ...·  11 月前    · 
越狱的大脸猫  ·  c++ - Why am I ...·  1 年前    · 
热情的烤面包  ·  在 Power BI Desktop ...·  1 年前    · 

今天有份資料表要我查出最新日期的所有資料做成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可參考