数据工厂Postgres查询日期时间错误

Data factory Postgres query date time error

我有一个 postgressql 查询。我在数据库查询中尝试过,它似乎工作正常。但是在数据块中它没有按预期工作。

我必须使用 where 子句。我从时间戳中提取日期并将其与传递的值(日期时间格式)进行比较的地方。我正在提取日期并检查它是否小于时间戳中的日期。 请检查 WHERE 子句。

select  DATE(to_timestamp(time,'YYYY-MM-DD %H24:%m:%s' )) as modifiedtime, *
FROM testg 
WHERE DATE(to_timestamp(time,'YYYY-MM-DD %H24:%m:%s' )) >= DATE(to_timestamp('2020-10-25 00:00:00','YYYY-MM-DD %H24:%m:%s' )) - INTERVAL '7 DAY'
order by time asc

在数据工厂中,查询如下所示:

@concat('select * FROM streamingData WHERE property_name = ''', item(), '''' ,' AND  DATE(to_timestamp(''',  activity('Lookup1').output.firstRow.max_timestamp, '''',',''','YYYY-MM-DD %H24:%m:%s', ''' ))' ,' >= ''', 'DATE(to_timestamp(''',  pipeline().parameters.enddate, '''',',''','YYYY-MM-DD %H24:%m:%s', ''' ))'  )

数据:

时间:

"2020-10-25 13:00:22.000000+01"
"2020-10-24 14:00:22.000000+01"
"2020-10-25 12:00:22.000000+01"
"2020-10-26 01:00:22.000000+01"

我正在使用 trigger()。outputs.windowEndTime() - 输出为:2020-10-20 01:00:22

我正在比较两个日期值,即 如果 2020-10-26 >= 2020-10-20

即使在过滤之后,我也得到了所有数据,即 2019 年等日期。

我错过了什么

奇怪的是,我尝试使用 Between 进行比较(这不起作用),即使在过滤之后我仍然得到所有年份。

使用的方法:

  1. 在子句之间使用 - 无效
  2. 使用过的 <= 和 >= - 也没有用。

我用了后来的“SYMMETRIC”函数。 with between - 过滤器在其中工作。我想在 BETWEEN SYMMETRIC 中,参数会自动交换,并且总是暗示一个非空范围。

最后查询如下:

@concat('select * FROM streamingData WHERE property_name = ''', item(), '''' ,' AND  time BETWEEN SYMMETRIC to_timestamp(''',  activity('LKP_RMS_ValueStream_Time').output.firstRow.max_timestamp, '''',',''','YYYY-MM-DD', ''' )' ,' AND ', 'to_timestamp(''',  pipeline().parameters.enddate, '''',',''','YYYY-MM-DD', ''' )' , ' - ', 'INTERVAL ''', '7 DAY', '''' )

感谢您的宝贵时间和帮助。