2013-02-26 135 views
1

我想添加一個字段到當前日期時間的數據表。我想在這裏添加它,以便當我使用另一段代碼來創建表時,它將它創建爲datetime(add-sqltable,它的價值)。使用當前日期時間將日期時間添加到數據表?

#create the datatable 
$quer = invoke-sqlcmd2 -serverinstance myservername -database "tempdb" -query "select @@servername as servername" -As 'DataTable' 
#now add the datetime field 
$quer.columns.add("InsDate",[DateTime]) 

此時我卡住了。這不起作用:

$quer | %{$_.InsDate = get-date} 

我收到此錯誤信息:

Exception setting "InsDate": "Unable to cast object of type 
'System.Management.Automation.PSObject' to type 'System.IConvertible'.Could 
n't store <2/26/2013 11:26:23 AM> in InsDate Column. Expected type is DateTime." 

更改格式也不起作用。有沒有辦法做到這一點?謝謝。

回答

2

試試這個:

$quer | %{[datetime]$_.InsDate = get-date} 

或本:

$quer | %{$_.InsDate = [datetime](Get-Date)} 

我不沒有能力測試你的具體情況,但我相信他們中的一個應該工作。

編輯:更改關閉')'爲'}'在第二個修復答案。

+1

使用@mbourgon查詢成功測試了兩個解決方案。 – 2013-02-27 14:02:01

+0

@ChadMiller很好聽,我沒有訪問任何SQL服務器,所以我無法測試他的具體情況。 – Nick 2013-02-27 16:34:51

+0

奇怪。第一個工作正常,但第二個告訴我我錯過了右括號,即使我添加一個。但第一個是有效的。謝謝@尼克! – mbourgon 2013-03-07 22:43:34

0

嗯可能會錯過這裏顯而易見的,但你不能調整你的SQL查詢,只是在源拉日期時間?

事情是這樣的:

這可能是我會做什麼,而不是在後來的捏造吧! :D

+0

並不總是一個選項。比方說,sp_blitz。每次他發佈新版本時,您都可以對其進行修改,但是這更容易長期。 – mbourgon 2013-02-27 00:36:25

相關問題