Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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小时数问题(postgresql)_Sql_Postgresql_Datetime - Fatal编程技术网

sql小时数问题(postgresql)

sql小时数问题(postgresql),sql,postgresql,datetime,Sql,Postgresql,Datetime,显示时间小于18:30的行程数据: 此查询: select * from schedules where TO_CHAR(datetime,'HH24:MI')<'18:30'); 选择* 从日程表where TO_CHAR(datetime,'HH24:MI')中,您的第一个问题是数据存储不正确 这: 我个人更喜欢使用ANSI时间戳文字: insert into schedules(code, datetime, street) values ('005',timestamp

显示时间小于18:30的行程数据:




此查询:

select * 
from schedules where TO_CHAR(datetime,'HH24:MI')<'18:30');
选择*

从日程表where TO_CHAR(datetime,'HH24:MI')中,您的第一个问题是数据存储不正确

这:

我个人更喜欢使用ANSI时间戳文字:

insert into schedules(code, datetime, street)
values ('005',timestamp '2015-01-01 20:00:00','street6');

要仅基于时间检索行,应比较时间值和非字符串

假设
datetime
定义为
timestamp
列(而**不是*定义为
date
,因为您可以使用以下方法获得18:30之前的所有日程安排:

select *
from schedules
where datetime::time < time '18:30'
选择*
从时间表
其中datetime::time

表达式
datetime::time
将仅将时间戳的时间部分提取为“实时”时间值,而不是字符串,可以将其与适当的时间文本进行比较。您的第一个问题是,数据存储不正确

这:

我个人更喜欢使用ANSI时间戳文字:

insert into schedules(code, datetime, street)
values ('005',timestamp '2015-01-01 20:00:00','street6');

要仅基于时间检索行,应比较时间值和非字符串

假设
datetime
定义为
timestamp
列(而**不是*定义为
date
,因为您可以使用以下方法获得18:30之前的所有日程安排:

select *
from schedules
where datetime::time < time '18:30'
选择*
从时间表
其中datetime::time

表达式
datetime::time
将仅将时间戳的时间部分提取为一个“实时”时间值,而不是一个字符串,它可以与适当的时间文本进行比较

显示您已尝试的查询从要添加字符的计划中选择*(datetime,'HH24:MI')。不要在注释中发布代码。编辑您的问题(我已经为您做了这些,但请记住下次)显示您尝试的查询从计划中选择*到_CHAR(datetime,'HH24:MI')不要在注释中发布代码。编辑您的问题(我已经为您做了这些,但请记住下次)非常感谢。我非常感谢您的快速回复。非常感谢。我非常感谢您的快速回复。
insert into schedules(code, datetime, street)
values ('005',timestamp '2015-01-01 20:00:00','street6');
select *
from schedules
where datetime::time < time '18:30'