我想創建一個只有“mm-dd”值的資料型別列。有可能嗎?如果可以,我應該怎么做?
注意:我想要“ 07-06 ”而不是“ 2022-06-07 ”
uj5u.com熱心網友回復:
沒有date可以存盤該格式的型別 - 事實上,沒有任何日期型別以您通常識別的任何格式存盤日期和/或時間。
對于您的特定要求,這看起來像是char(5)資料型別,但是您如何約束它以使其僅接受有效的日期值,我不知道。你會認為這會起作用:
CHECK (TRY_CONVERT(date, string_column '-2022', 105) IS NOT NULL)
但是閏年呢?2 月 29 日有時是有效的,但你已經丟棄了唯一可以讓你確定的資訊。存盤你最喜歡的字串并相信人們不會把垃圾放在那里真是一堆亂七八糟的東西。
老實說,我會將日期存盤為date,然后您可以只擁有一個計算列(或視圖中的列,或者只是在查詢時執行此操作:
d_slash_m_column AS CONVERT(char(5), date_column, 105)
為什么不在您的查詢中(或僅在視圖中)說:
[output] = CONVERT(char(5), data_in_the_right_type, 105)
?
FORMAT()由于我在這里描述的原因,我個人會遠離:
- FORMAT() 很好,但是……
- FORMAT 是一個方便但昂貴的函式 - 第 1 部分
- FORMAT 是一個方便但昂貴的函式 - 第 2 部分
uj5u.com熱心網友回復:
您可以使用 SQL Server FORMAT函式:
FORMAT(col1, 'dd/MM')
在此處查看演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/486962.html
上一篇:在sql查詢中決議utm引數
