使用SQL Server進行日期和時間轉換

2022-06-14 13:15:09 字數 1506 閱讀 9201

問題

在很多情況下,日期和時間沒有以您想要的格式顯示在您的家門口,查詢的輸出也不符合檢視該查詢的人們的需求。

一種選擇是格式化應用程式本身中的資料。

另乙個選擇是使用sql server提供的內建功能來格式化日期字串。

解sql server提供了許多選項,可用於格式化日期/時間字串。

首先要考慮的因素是實際所需的日期/時間。

最常見的是使用

getdate()的當前日期/時間

。這將根據提供日期和時間的伺服器來提供當前日期和時間。

如果需要通用日期/時間,

則應使用

getutcdate()。

要更改日期格式,可以將請求的日期轉換為字串,然後指定與所需格式相對應的格式編號。

將日期格式選項與convert函式一起使用

要獲取yyyy-mm-dd,請使用select convert(varchar,getdate(),23)

要獲取mm / dd / yyyy,請使用select convert(varchar,getdate(),1)

檢視圖表以獲取所有格式選項的列表

以下是格式列表和輸出示例。

所有這些示例使用的日期為「 2006-12-30 00:38:54.840」。

您還可以設定日期或時間的格式,而不用分割字元,以及連線日期和時間字串:

如果要獲取所有有效日期和時間格式的列表,則可以使用下面的**,並將@date更改為getdate()或要使用的任何其他日期。

這將僅輸出有效格式。

declare @counter int = 0

declare @date datetime = '

2006-12-30 00:38:54.840

'create table #dateformats (dateformatoption

int, dateoutput nvarchar(40

))while (@counter

<= 150

)begin

begin try

insert into #dateformats

select convert(nvarchar, @counter), convert(nvarchar,@date, @counter)

set @counter = @counter + 1

end try

begin catch;

set @counter = @counter + 1

if @counter >= 150

begin

break

endend catch

endselect * from #dateformats

sqlserver 日期函式

一直都在用oracle,對sqlserver中的一些函式很不熟悉,在工作用偶爾會用到,貼在這裡,便於以後查詢 取出資料庫欄位中datetime列的日期部分 1 select datename year,getdate datename month,getdate datename day,getda...

sql server遞迴日期

在做專案任務時,需要將乙個日期範圍轉換為日期表。例如 日期範圍 2017年01月21日 2017年02月20日 轉換成一日為單位的日期表,如下。2017 01 21 2017 01 22 2017 01 23 2017 02 19 2017 02 20 直接上sql,查詢結果如上 set langu...

SQL Server 日期函式

獲取當前系統日期時間。取決於 1 精度要求 2 utc時間還是系統時間 3 要不要帶時區 與 getdate 和 getutcdate 比較而言,sysdatetime 和 sysutcdatetime 的秒的小數部分精度更高。sysdatetimeoffset 包含系統時區偏移量。sysdatet...