我試圖讓SQL中的以下結果:轉換日期時間(MM/DD/YYYY)爲十進制(年月日)
例如:23/05/2014到20142305
但得到這樣的:
select convert(decimal, convert(datetime, '5/23/2014'))
結果:41780
人知道如何可以得到下面的格式? (如果可能的話?)
的問候和感謝
我試圖讓SQL中的以下結果:轉換日期時間(MM/DD/YYYY)爲十進制(年月日)
例如:23/05/2014到20142305
但得到這樣的:
select convert(decimal, convert(datetime, '5/23/2014'))
結果:41780
人知道如何可以得到下面的格式? (如果可能的話?)
的問候和感謝
在許多數據庫(包括SQL Server),你可以做:
select 10000 * year(datetime) + 100 * month(datetime) + day(datetime)
有些數據庫不支持這些功能,所以你可能需要extract(datepart from datetime)
或類似的功能。
select convert(decimal, format(convert(datetime, '5/23/2014'),'yyyyMMdd'))
你可以試試這個
SELECT CAST(CONVERT(VARCHAR(8), datetime, 112) AS DECIMAL)
CREATE FUNCTION DateToYYYYMMDD
(
@Date DateTime
)
RETURNS decimal
AS
BEGIN
DECLARE @ResultVar decimal
SET @ResultVar=Year(@Date)*10000+Month(@Date)*100+Day(@Date)
RETURN @ResultVar
END
您可以使用它像這樣
Select dbo.DateToYYYYMMDD(GetDate())
Remeber,調用用戶同比功能時,必須包含在這種情況下DBO模式。
您正在使用哪種RDBMS? –
Ms sql server 2008 – ratlab