Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择SQL中的时间戳范围_Sql_Postgresql_Timestamp - Fatal编程技术网

选择SQL中的时间戳范围

选择SQL中的时间戳范围,sql,postgresql,timestamp,Sql,Postgresql,Timestamp,我试图在SQL postgres中的特定日期范围内选择特定的时间范围。请参阅下面的代码,其中给出了“10:00:00”上的错误。 每列的数据类型为: 数字表示“余额”, “货币”的字符变化(255), “创建时间”的无时区时间戳(例如:2018-03-20 00:00:00) 我尝试了这个链接,但没有成功。 选择金额(bl.balance)作为余额、bl.currency、bl.created\u at 从平衡日志bl 其中bl.balance_scope='system'和 创建日期>=当前

我试图在SQL postgres中的特定日期范围内选择特定的时间范围。请参阅下面的代码,其中给出了“10:00:00”上的错误。 每列的数据类型为: 数字表示“余额”, “货币”的字符变化(255), “创建时间”的无时区时间戳(例如:2018-03-20 00:00:00)

我尝试了这个链接,但没有成功。

选择金额(bl.balance)作为余额、bl.currency、bl.created\u at
从平衡日志bl
其中bl.balance_scope='system'和
创建日期>=当前日期-2和
在<当前日期和
在“10:00:00”和“11:00:00”之间创建
按bl.currency分组,bl.created\u在
在描述处创建的订单

比较需要以时间为单位:

SELECT SUM(bl.balance) AS balance, bl.currency, bl.created_at
FROM balance_logs bl
WHERE bl.balance_scope = 'system' AND
      created_at >= CURRENT_DATE - 2 AND
      created_at < CURRENT_DATE AND
      created_at::time BETWEEN '10:00:00'::time AND '11:00:00'::time
GROUP BY bl.currency, bl.created_at
ORDER BY created_at DESC;

请编辑您的问题(标签下方有一个
edit
按钮),并在表格中包含列的说明,以及每个列的数据类型。谢谢。@gordinlinoff谢谢。我想知道是否可以只修改时间戳的一部分,你告诉我这是真的。谢谢
SELECT SUM(bl.balance) AS balance, bl.currency, bl.created_at
FROM balance_logs bl
WHERE bl.balance_scope = 'system' AND
      created_at >= CURRENT_DATE - 2 AND
      created_at < CURRENT_DATE AND
      created_at::time BETWEEN '10:00:00'::time AND '11:00:00'::time
GROUP BY bl.currency, bl.created_at
ORDER BY created_at DESC;
      extract(hour from created_at) = 10