一、SQL日期轉換為yyyymmdd
在實際應用中,很多時候需要把日期類型轉換為yyyymmdd格式,在SQL Server中可以通過convert函數實現:
SELECT CONVERT(varchar(8), GETDATE(), 112) AS yyyymmdd
其中,convert函數有三個參數,第一個參數是要轉換的數據類型,第二個參數是日期,第三個參數是轉換格式。在此例中,convert的第一個參數為varchar(8),表示把日期轉成8位字元串;第二個參數是getdate(),表示當前日期;第三個參數是112,表示轉換格式為yyyymmdd。
二、SQL日期轉換為yyyy
如果只需要獲取日期中的年份,也可以使用convert函數來實現:
SELECT CONVERT(char(4), GETDATE(), 120) AS yyyy
在此例中,convert的第一個參數為char(4),表示把日期轉換成4位字元串;第二個參數是getdate(),表示當前日期;第三個參數是120,表示轉換格式為yyyy。此時,結果只會返回年份。
三、SQL日期轉換函數
在SQL Server中,還有一些日期轉換的內置函數,如year、month、day、datename等。這些函數可以方便地獲取日期中的各個部分:
SELECT YEAR(GETDATE()) AS year, MONTH(GETDATE()) AS month, DAY(GETDATE()) AS day, DATENAME(weekday, GETDATE()) AS weekday
其中,year表示獲取年份,month表示獲取月份,day表示獲取天數,datename可以獲取星期幾。在此例中,使用了getdate()函數獲取當前日期。
四、SQL日期轉換為年月格式
在實際應用中,還常常需要把日期轉換為年月格式,例如2022年3月。可以使用datepart函數和字元串拼接實現:
SELECT CAST(DATEPART(year, GETDATE()) AS varchar(4)) + '年' + CAST(DATEPART(month, GETDATE()) AS varchar(2)) + '月' AS year_month
在此例中,datepart函數用來獲取日期中的年份和月份,然後使用字元串拼接的方式將它們組合在一起。結果為2022年3月。
五、SQL日期轉換為字元串
有時候需要把日期類型轉換為字元串類型,可以使用cast或convert函數:
SELECT CAST(GETDATE() AS varchar(20)) AS date_string SELECT CONVERT(varchar(20), GETDATE(), 120) AS date_string
在此例中,cast將日期類型轉換為字元串類型,convert同樣可以用來進行轉換,同樣也需要指定轉換的格式。
六、SQL日期轉換為周數
在SQL Server中,有函數datepart用於提取日期的年份、月份、周數等信息。使用datepart計算當年的第幾周:
SELECT DATEPART(week, GETDATE()) AS week_of_year
在此例中,使用datepart函數並指定week參數,獲取當前日期屬於當年的第幾周。
七、SQL日期格式轉換 年月
把日期轉換成「年-月」的格式:
SELECT CONVERT(varchar(7), GETDATE(), 120) AS year_month
在此例中,convert將日期轉換成varchar類型,然後指定格式為yyyy-mm。
八、SQL日期轉換為數值
需要把日期轉換成數值類型,可以使用datepart函數和小數點運算符:
SELECT DATEPART(yyyy, GETDATE()) * 10000 + DATEPART(mm, GETDATE()) * 100 + DATEPART(dd, GETDATE()) AS date_number
在此例中,使用datepart函數獲取年月日,然後對它們進行運算,按照數字的格式合併在一起。
九、SQL日期轉換為數字類型函數
除了上面的方法外,也可以使用自定義函數來實現日期轉換為數字類型:
CREATE FUNCTION dbo.fnDateToNumber (@date DATE) RETURNS INT AS BEGIN DECLARE @year INT, @month INT, @day INT; SET @year = DATEPART(year, @date); SET @month = DATEPART(month, @date); SET @day = DATEPART(day, @date); RETURN @year * 10000 + @month * 100 + @day; END
在此例中,定義了一個自定義函數fnDateToNumber,將日期轉換為數字類型。函數中使用了datepart函數獲取日期中的年月日,然後按照數字的格式合併在一起。使用時可以直接傳入日期參數,函數會返回相應的數字值。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/155502.html