2

現在の日時でデータテーブルにフィールドを追加しようとしています。ここに追加して、別のコードを使用してテーブルを作成するときに、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."

フォーマットを変更しても機能しません。これを行う方法はありますか?ありがとう。

4

3 に答える 3

3

これを試して:

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

またはこれ:

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

あなたの特定のケースをテストする能力はありませんが、そのうちの 1 つが機能するはずです。

編集:回答を修正するために、秒単位で終了 ')' を '}' に変更しました。

于 2013-02-26T21:22:42.327 に答える
0

うーん、ここでは明らかなことが欠けているかもしれませんが、SQLクエリを調整して、ソースで日時を取得することはできませんか?

このようなもの:

select
@@servername as [servername],
GETDATE() as [DateTime]

後でそれをいじくり回すのではなく、おそらくそれが私がすることです!:D

于 2013-02-26T21:50:54.387 に答える
0

回避策は次のとおりです。

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

ここにあります: PowerShell での DateTime 解析

于 2013-02-26T17:58:16.647 に答える