我确定我不是第一个问这个但我无法找到答案的人: 我在sqlite数据库中的数据表上有一个select查询。
$RegLocations = @("HKLM:\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_ALLOW_USER32_EXCEPTION_HANDLER_HARDENING")
if([System.Environment]::Is64BitProcess){
$RegLocations += "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ALLOW_USER32_EXCEPTION_HANDLER_HARDENING"
}
foreach($Key in $RegLocations)
{
if(-not(Test-Path $Key)){
New-Item -Path $Key -Force
}
New-ItemProperty -Path $Key -Name "iexplore.exe" -Value 1 -ErrorAction SilentlyContinue -PropertyType DWord
}
当我运行这个时,我得到数据表中的所有字段,包括从具有unix时间戳值的整数列计算的新列。但是,我希望我的计算列的类型为double。通过上面的查询,我得到一个类型整数。
select *, ((int_EndTime)-(int_StartTime))/60 as dou_usage_min FROM tbl_unautho_usage;
之后我尝试将整数列的列类型更改为float,但是这会让我发现以下错误:
select *, ((int_EndTime as float)-(int_StartTime as float))/60 as dou_usage_min FROM tbl_unautho_usage;
我从以下帖子中得到了这个想法: How to cast computed column with correct decimal/$ result
答案 0 :(得分:1)
尝试将算术运算中使用的值乘以1.0
。
select
*,
((int_EndTime*1.0)-(int_StartTime*1.0))/60 as dou_usage_min
FROM tbl_unautho_usage;
可能只有一个值乘以就足够了。
答案 1 :(得分:1)
CAST expression的正确语法是" CAST(某些 AS 类型)"。
但在这种情况下,对于使用浮点数进行除法,至少有一个操作数足以成为浮点数:
SELECT *, (int_EndTime - int_StartTime) / 60.0 ...