[MSSQL]時間日期在SQL語法的表示法

摘要:[MSSQL]時間日期在SQL語法的表示法

通常我們在使用資料庫時日期格式的表示方式通常為YYYY/MM/DD 00:00:00.000

而對於時間日期的欄位呈現會有比較多客製的呈現,這時我們可以透過SQL語法來幫我們直接做出我們想要的效果

以下是一個簡單的範例:


select convert(char(10),date,121) from product /*日期會以YYYY-MM-DD的格式顯示*/
select convert(char(10),date,121) from product /*日期會以YYYY/MM/DD的格式顯示*/ 

下面再舉一個比較常用的範例,我們如果要從網頁上篩選某筆資料的起迄時間,假設我們會從網頁取得欲查詢的起迄時間:begDate、endDate(一般只會顯示至年月日,故此時分秒皆為0,即yyyy-mm-dd 00:00:00的情況)

這邊我們就可以用Between來抓出一個以日期為最小時間單位的資料,如下


SELECT * FROM Epaper 
where 
createTime between 
convert(date,begDate,121)  
and  
dateadd(second,86399,convert(datetime,convert(date,endDate,121),121))

此外,我們也可以透過一些MSSQL內建的function來幫我們做處理, 如下


select Year(date) from product /*日期只呈現西元年*/

詳細的function可參考MSDN官方文件


如果覺得文章還不錯麻煩請在文章最上面給予推薦,你的支持是小弟繼續努力產出的動力!