iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

0
Modern Web

淺談資料庫&ASP.net&C# 入門系列 第 36

[iT鐵人賽Day36]SQL Server 找出最新日期的所有資料

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


上一篇
[iT鐵人賽Day35]ASP.NET-使用者控制項-分頁的用法
系列文
淺談資料庫&ASP.net&C# 入門36

尚未有邦友留言

立即登入留言