将datetime(mm / dd / YYYY)转换为十进制(YYYYmmDD)

时间:2014-05-23 18:22:14

标签: sql sql-server-2008

我试图在Sql中获得以下结果:

示例:2014年5月23日至20142305

但得到这个:

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

结果:41780

任何人都知道如何获得以下格式? (如果可能的话??)

问候和感谢

5 个答案:

答案 0 :(得分:3)

在许多数据库(包括SQL Server)中,您可以这样做:

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

某些数据库不支持这些功能,因此您可能需要extract(datepart from datetime)或类似功能。

答案 1 :(得分:1)

你可以试试这个

SELECT CAST(CONVERT(VARCHAR(8), datetime, 112)  AS DECIMAL)

答案 2 :(得分: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())

请记住,在调用用户函数时,必须包含本例中的模式dbo。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

SELECT 
    CONVERT(NUMERIC,
        CONCAT(
            LEFT('23/05/2014',2)
            ,RIGHT(LEFT('23/05/2014',5),2)
            ,RIGHT('23/05/2014',4)
            )
            )

CONVERT(NUMERIC 部分可能/不需要取决于值的使用方式。