如何转换日期,以便它与日期维度表连接

时间:2015-03-19 06:03:45

标签: sql sql-server datetime

我在ProdDate表格中有一个Product列,其格式如下:

 1/2/2015 1:22:19 PM

我需要加入此日期列以从DimDate表中检索更多信息。我正在加入具有以下日期格式的列名Date:

 1900-01-01 00:00:00.000

我尝试了但仍然无效:

 CONVERT(DATETIME, ProdDate, 101)
 CONVERT(VARCHAR, ProdDate, 101)
 CONVERT(DATETIME, ProdDate, 110)
 CAST(CONVERT(DATETIME, ProdDate, 101) AS VARCHAR(10))

我已尝试在DateProdDate列上进行上述转换以加入,但仍无法使其正常工作。有人知道解决方法吗?

1 个答案:

答案 0 :(得分:1)

日期维度不应包含时间组件。创建单独的日期和时间维度。

使用int'编码'日期密钥(例如20150219)或数据类型Date作为日期维度键列。

在后一种情况下;你只需施放日期:

cast(ProdDate as Date)

在前者

cast(CONVERT(char(8), ProdDate, 112) as int)

回复:CAST and CONVERT