我试图在Sql中获得以下结果:
示例:2014年5月23日至20142305
但得到这个:
select convert(decimal, convert(datetime, '5/23/2014'))
结果:41780
任何人都知道如何获得以下格式? (如果可能的话??)
问候和感谢
答案 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 部分可能/不需要取决于值的使用方式。