2014-05-23 113 views
0

我試圖讓SQL中的以下結果:轉換日期時間(MM/DD/YYYY)爲十進制(年月日)

例如:23/05/2014到20142305

但得到這樣的:

select convert(decimal, convert(datetime, '5/23/2014')) 

結果:41780

人知道如何可以得到下面的格式? (如果可能的話?)

的問候和感謝

+1

您正在使用哪種RDBMS? –

+0

Ms sql server 2008 – ratlab

回答

3

在許多數據庫(包括SQL Server),你可以做:

select 10000 * year(datetime) + 100 * month(datetime) + day(datetime) 

有些數據庫不支持這些功能,所以你可能需要extract(datepart from datetime)或類似的功能。

0
select convert(decimal, format(convert(datetime, '5/23/2014'),'yyyyMMdd')) 
1

你可以試試這個

SELECT CAST(CONVERT(VARCHAR(8), datetime, 112) AS DECIMAL) 
1
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模式。

相關問題