2017-10-21 144 views
0

我可以用这个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,我不能(不愿)去改变它。
it's a screenshot of my Azure Storage Explorer that is showing that I have Minute & Second & milliseconds in my Timestamp 以上就是我的Azure存储资源管理器的截图是表明我有我的时间戳

但分&二&毫秒,当我使用这个命令:

$result[$j].Timestamp.toString("s") 

结果是不小号和秒...
我甚至测试这些命令太:

"{0:MM/dd/yyyy hh:mm:ss}" -f $result[$j].Timestamp 

但结果是类似10/16/2017 10:00:00
你能指导我吗?

回答

1

提供DateTime类型d,命令d.ToString(“S”)的任何对象将归还的日期对象在格式2017-10-16T23:30:00.000

如果有一个字符串和需要将其转换为datetime,下面将不同格式的日期字符串之间进行转换:

[DateTime]::Parse("10/16/2017 23:00:00").ToString("s") 

通过上述评价为“2017-10-16T23:30:00.000”

+0

是的,这改变格式,但我会失去细分,秒和毫秒,因为当我得到信息从存储表中删除,它会改变格式,它会删除这些东西!当我将它解析为字符串时,它将被删除...:( –

+0

不知道为什么你认为它会删除分钟和秒 - 如果内部存储类型是一个DateTime,那么一个ToString(“s”)'会以“格式相同的格式返回那个行的时间戳存储“(作为一个旁路 - 如果'$ result [0] .TIMESTAMP'已经是'DateTime',不需要解析 - 只是'ToString()'它)也就是说,也许你需要告诉我们为什么你需要将它转换为字符串,以及你在做什么 - 可能有其他解决方案来解决你想要解决的问题 –

+0

@BrendanGreen我已经添加了一些信息,我需要这个时间戳,因为它是系统的指标它们自动存储在Azure存储表中,同一时间戳(如CPU,内存,网络等)有几种度量类型,我需要将同一时间戳的所有分隔的度量行合并到一行,将它存储到另一个表中。 –

相关问题