You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中获取SQLite可空DateTime字段的纯时间值?

解决PowerShell读取SQLite可空DateTime字段仅取时间值的问题

问题根源

你的查询语句没有给CAST转换后的列指定别名,导致返回的结果列名是完整的表达式CAST(Alive as nvarchar(20)),而非你定义的$col1(myColumnName)。所以你用$_.$col1无法匹配到对应的属性,自然输出空行。

解决方案一:修改SQL语句添加别名(推荐)

直接在SELECT语句中给转换后的列起别名,和原列名一致,这样就能正常通过$col1访问值:

$colId = "myPrimaryKeyColumn"
$col1 = "myColumnName"
# 添加AS $col1指定别名
$select = "SELECT CAST($col1 as nvarchar(20)) AS $col1 FROM $table ORDER BY $colId DESC LIMIT 1"
# 执行查询后直接取值
$result = Invoke-SqliteQuery -SQLiteConnection $con -Query $select
$targetValue = $result.$col1

解决方案二:不修改SQL,直接提取结果值

如果不想改动SQL,可以通过PowerShell的对象属性直接提取值,不用依赖列名:

$result = Invoke-SqliteQuery -SQLiteConnection $con -Query $select
# 提取第一个属性的值
$targetValue = $result.PSObject.Properties.Value

或者通过匹配列名的方式访问:

$result = Invoke-SqliteQuery -SQLiteConnection $con -Query $select
# 找到列名包含CAST的属性并取值
$targetValue = $result."CAST($col1 as nvarchar(20))"

验证结果

执行上述任一方案后,$targetValue就会直接返回04/11/2022 17:17:15这个时间字符串。

内容的提问来源于stack exchange,提问作者Paul Efford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:35:27