sql小时数问题(postgresql)
显示时间小于18:30的行程数据: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
此查询:
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'