我的数据库中有以下值:
Wed Jun 01 2016 00:00:00 GMT+0200 (CEST)
在我的代码中我得到了这样的东西:
2016-06-23
我需要在我的代码中查询类似日期的日期,并且在postgreSQL中我发现date_trunc从日期“切断”不必要的信息。 documentation显示以下用法示例:
SELECT date_trunc('hour', TIMESTAMP '2001-02-16 20:38:40');
Result: 2001-02-16 20:00:00
所以我认为这应该有效:
redshift.query("SELECT stuff, ts , date_trunc('day', TIMESTAMP 'ts') as 'date'
FROM ::table_name
WHERE date = :day",{table_name: name, day: day}, function(err, data){
>>>error: Redshift query Error: error: syntax error at or near "'date'"
但显然这不起作用。它告诉我,我在“日”附近遇到语法错误,我猜它是'ts'。在我发现的所有示例中,时间戳都是硬编码的,但这不是我需要的。任何想法如何使用colum作为时间戳而不是硬编码?
答案 0 :(得分:0)
您似乎意外地使用了文字'ts'
而不是引用列ts
。此外,您不能将'date'
之类的字符串文字作为列别名。它必须是一个标识符。
所以看起来应该是
date_trunc('day', TIMESTAMP ts) as "date"
也许你混淆了字符串文字(引用'
)和标识符(引用"
)。