[英]Convert Decimal or Varchar into Date
我有2個領域。
出生=數據類型十進制(12,4)&日期=數據類型日期
Birth Date
19650101 2015-07-09
我如何獲得看起來像這樣的結果
我希望結果像這樣
Birth Date
1965-01-01 2015-07-09
其中Birth是Date數據類型而不是十進制(12,4)
要將數字19650101
轉換為日期,請使用
CONVERT(DATETIME, CAST(Birth AS VARCHAR(8)), 112)
要獲得年數(至小數點后一位),您可以執行以下操作:
ROUND(
DATEDIFF(day,
CONVERT(DATETIME, CAST(Birth AS VARCHAR(8)), 112),
[Date])/365.25
,1)
可能不確切,但應接近一年的十分之一。
您可以使用此:
-- Create demo data
CREATE TABLE #dates(birth int, date date)
INSERT INTO #dates(birth,date)
VALUES(19650101,N'2015-07-09')
-- Your work
SELECT CONVERT(date,CONVERT(nvarchar(max),birth),112) as birth, date,
DATEDIFF(year,
CONVERT(date,CONVERT(nvarchar(max),birth),112),
date
) as years
FROM #dates
-- Cleanup
DROP TABLE #dates
這取決於您提供的確切格式( 19650101
)。
我認為您不需要四舍五入。 只需將您的十進制值轉換為“-”,如下所示:)
select left(birth,4) +'-' +
substring(convert(nvarchar,birth),5,2)+'-'+
substring(convert(nvarchar,birth),7,2)
這是進行此轉換的一種方法。
cast(cast(FLOOR(birth) as CHAR(8)) as DATE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.