我想只使用SQL或SSIS 以下面的SQL查詢作爲例子來DATETIME2轉換爲datetime,以創造不同來源之間的標準:怎麼投DATETIME2爲DATETIME
我得到出現以下錯誤: '不允許將數據類型datetime2顯式轉換爲時間戳。'
此外,我確實設法使用簡單的轉換將datetime2轉換爲日期。
什麼是使用SQL Server 2008或SSIS將datetime2轉換爲datetime的正確方法?
gilibi
我想只使用SQL或SSIS 以下面的SQL查詢作爲例子來DATETIME2轉換爲datetime,以創造不同來源之間的標準:怎麼投DATETIME2爲DATETIME
我得到出現以下錯誤: '不允許將數據類型datetime2顯式轉換爲時間戳。'
此外,我確實設法使用簡單的轉換將datetime2轉換爲日期。
什麼是使用SQL Server 2008或SSIS將datetime2轉換爲datetime的正確方法?
gilibi
好的,我設法使用SSIS數據轉換組件來完成該操作。 我發現我可以使用DT_DBTIME2或DT_DBTIME
感謝大家誰幫助
你的樣品SELECT語句嘗試投放offer_start_date爲timestamp不是日期時間。
如果您確實需要datetime2列中的時間戳值,則可以使用DatePart函數來檢索日期的某些部分並自行構建它。
例如:
declare @date datetime2
set @date = GETUTCDATE()
select @date,
DATEPART(hour, @date),
DATEPART(minute, @date),
DATEPART(second, @date)
MSDN參照DatePart功能。
不知道爲什麼你會得到這個錯誤,我沒有同樣的問題。以下示例在我的2008 Management Studio中正常工作。
create table #temp
(
OrderId int,
OrderDate datetime2
)
insert into #temp
(OrderId, OrderDate)
values
(1, GetUTCDate())
select *, CAST(OrderDate as datetime)
from #temp
drop table #temp
您鑄造timestamp
在你的代碼。更改爲datetime
。
SELECT CAST(offer_start_date AS datetime) FROM [ODS].[macaclient_offers]
我複製了錯誤的查詢。它應該與你建議的一樣,但這不起作用 – gilibi
奇怪。在我的測試中它工作得很好。 [看看這裏](http://sqlfiddle.com/#!3/e34ce/2)。 –
當你執行上面的查詢時,你會得到什麼錯誤?你問題中的錯誤信息是指'時間戳記'。 –
你讀過http://stackoverflow.com/questions/1331779/c-sharp-conversion-of-a-datetime2 -data型至A-日期時間數據類型? –
我有,但我無法在案例中使用C# – gilibi
您已編輯查詢,但顯然錯誤消息不再正確 - 您是否仍然有*錯誤? –