微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

时间戳早于几天从POSTGRES中删除行,这是来自另一个表的SELECT语句的结果

如何解决时间戳早于几天从POSTGRES中删除行,这是来自另一个表的SELECT语句的结果

我想从POSTGRES的表中删除所有时间戳值早于date列的行。

删除较旧的行,然后使用某些时间戳,我使用了-

SELECT * from gps_coordinates WHERE sattime < Now() - INTERVAL 7 DAY;

现在我想从另一个表中获取间隔时间,并基于此间隔删除行。我不知道怎么办。我试过了但这不起作用-

DELETE from gps_coordinates where sattime < Now() - INTERVAL || (SELECT backup_day as days from gps_devices WHERE id=11) || 'DAY'

还有这个-

DELETE from gps_coordinates where sattime < Now() - INTERVAL (SELECT backup_day as days from gps_devices WHERE id=11) || 'DAY'

这会产生错误:“ SELECT”或附近的语法错误

需要帮助

解决方法

您可以串联并投射:

awk -F"," '
{
    printf "echo %s ",$1
    for (i=3; i<=NF;i=i+3) {
        printf " command1 %s command2 %s command3 %s",$i,$(i+1),$(i+2)
        }
    print " command3"
}' test.txt

子查询必须始终返回不超过一行。

,

我认为你想要这个:

$path = '\\server\folder\filefolder\ReadyForProd' 
$path2 = '\\server\folder\filefolder\ReadyForStage'
$path3 = '\\server\otherfolder\filefolder2\ReadyForProd' 
$path4 = '\\server\otherfolder\filefolder2\ReadyForStage'
$stats = 0 
$msg = '' 
$days = 0
$hours = 0 
$minutes = 10
$files = @(Get-ChildItem -Recurse -Path $path,$path2,$path3,$path4 -Include '*.*' | ?{ $_.LastWriteTime -lt (Get-Date).AddDays(-$days).AddHours(-$hours).AddMinutes(-$minutes) -and $_.psIsContainer -eq $false}) 
if ($files -ne $null) { 
    $f_names = [System.String]::Join('|',$files) 
    $msg = 'Message: ' + $f_names 
    $stats = $files.Count 
} 
Write-Host $msg 
Write-Host "Statistic: $stats" 

或使用函数DELETE FROM gps_coordinates WHERE sattime < NOW() - INTERVAL '1 day' * (SELECT backup_day FROM gps_devices WHERE id=11);

MAKE_INTERVAL()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。