![](/img/trans.png)
[英]How to convert date in YYYYMMDD format (int) to datetime format in hive?
[英]Convert DATETIME to 8 digit INT in format YYYYMMDD SQL
需要聯接兩個表。 一個表具有一個'datekey'列,該列是來自dimdate表的YYYYMMDD格式的int,而另一個表具有一個'dated'列,它是一個日期時間。 我最初將datetime強制轉換為日期,因為這是group by似乎正常工作的唯一方法。 由於“在d.datekey = BBB.datekey上”這一行,我不斷收到錯誤“操作數類型沖突:日期與int不兼容” ..關於簡單解決方法的任何建議嗎?
select
distinct CONVERT (date,convert(char(8),d.datekey )) as Date
, isnull(BBB.reccount,0) DimAccount
from dimdate d
left outer join(
Select
cast(createdon as date) datekey
, count(*) RecCount
from DimAccount
group by cast(createdon as date)
)BBB on d.datekey = BBB.datekey
where d.datekey like '2017%'
group by d.datekey
,BBB.RecCount
having MAX(DATEDIFF(dd, CONVERT(date, CAST(d.Datekey AS CHAR(8)), 101), GETDATE())) > -1
order by date desc
這樣的事情應該讓你開始
from dimDate dd join dimAccount da
on cast(da.createdOn as date) = cast(cast(dd.dateKey as char(8)) as date)
where dd.year = 2017 -- or you can filter on da.createdOn >= '20170101'
實際上,如果您的dimDate表具有實際的日期列,則根本不需要強制轉換dateKey。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.