我可以用這個PowerShell命令獲取存儲錶行:如何獲取azure存儲表的時間戳作爲字符串?
$temp_table_name = "MY_TABLE_NAME"
$saContext = (Get-AzureRmStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccount).Context
$temp_table = Get-AzureStorageTable -Name $temp_table_name -Context $saContext
$result = Get-AzureStorageTableRowAll -table $temp_table
我在我的表中的兩個時間戳,一個是天藍色的表本身的名稱Timestamp
,另一種是用於度量(自動存儲)與名TIMESTAMP
。那麼$result[0]
的結果就像波紋管:
Average : 3228132966.4
Count : 240
CounterName : \Memory\AvailableMemory
DeploymentId : 2c90752b-100f-4640-a056-e2b894bf5bd5
Host : cpuusagetest
Last : 3230662656
Maximum : 3231711232
Minimum : 3225419776
TIMESTAMP : 10/16/2017 10:00:00 PM
Total : 774751911936
PartitionKey : *************
RowKey : ***************__:005CMemory:005CAvailableMemory
Etag : W/"datetime'2017-10-16T23%3A00%3A05.5000867Z'"
我不知道爲什麼會出現只是TIMESTAMP
,另一種是Etag
!在結果中。反正我可以使用這個命令來獲得時間戳:
$result[0].Timestamp
它總是會返回一個字符串如10/16/2017 23:00:00
,但在表的行它的儲存像2017-10-16T23:30:00.000
。我需要獲得存儲在存儲表中的格式。
我試圖改變使用這樣的命令格式:
[String]$result[0].Timestamp
or
$result[$j].Timestamp.toString("s")
但結果是一樣的。
請注意,當我使用$result[$j].Timestamp.GetType().FullName
結果是System.DateTime
,然後在我的表中的 timestamp屬性的類型是DateTime
,我不能(不願)去改變它。
以上就是我的Azure存儲資源管理器的截圖是表明我有我的時間戳
但分&二&毫秒,當我使用這個命令:
$result[$j].Timestamp.toString("s")
結果是不小號和秒...
我甚至測試這些命令太:
"{0:MM/dd/yyyy hh:mm:ss}" -f $result[$j].Timestamp
但結果是類似10/16/2017 10:00:00
你能指導我嗎?
是的,這改變格式,但我會失去細分,秒和毫秒,因爲當我得到信息從存儲表中刪除,它會改變格式,它會刪除這些東西!當我將它解析爲字符串時,它將被刪除...:( –
不知道爲什麼你認爲它會刪除分鐘和秒 - 如果內部存儲類型是一個DateTime,那麼一個ToString(「s」)'會以「格式相同的格式返回那個行的時間戳存儲「(作爲一個旁路 - 如果'$ result [0] .TIMESTAMP'已經是'DateTime',不需要解析 - 只是'ToString()'它)也就是說,也許你需要告訴我們爲什麼你需要將它轉換爲字符串,以及你在做什麼 - 可能有其他解決方案來解決你想要解決的問題 –
@BrendanGreen我已經添加了一些信息,我需要這個時間戳,因爲它是系統的指標它們自動存儲在Azure存儲表中,同一時間戳(如CPU,內存,網絡等)有幾種度量類型,我需要將同一時間戳的所有分隔的度量行合併到一行,將它存儲到另一個表中。 –