在postgresql中检索之间的时间戳 选择 至时间戳('2013-06-24 11:36:40 AM','yyyy-MM-dd hh:mi:ss a')>= 至时间戳('2013-06-24 11:20:00 AM','yyyy-MM-dd hh:mi:ss a') 及 至时间戳('2013-06-24 11:36:40 AM','yyyy-MM-dd hh:mi:ss a')= 至时间戳('2013-06-24 11:20:00 AM','yyyy-MM-dd hh:mi:ss a') 及 to_timestamp('2013-06-24 11:36:40 AM','yyyy-MM-dd hh:mi:ss a')

在postgresql中检索之间的时间戳 选择 至时间戳('2013-06-24 11:36:40 AM','yyyy-MM-dd hh:mi:ss a')>= 至时间戳('2013-06-24 11:20:00 AM','yyyy-MM-dd hh:mi:ss a') 及 至时间戳('2013-06-24 11:36:40 AM','yyyy-MM-dd hh:mi:ss a')= 至时间戳('2013-06-24 11:20:00 AM','yyyy-MM-dd hh:mi:ss a') 及 to_timestamp('2013-06-24 11:36:40 AM','yyyy-MM-dd hh:mi:ss a'),postgresql,datetime,timestamp,Postgresql,Datetime,Timestamp,我检查了您发布的以下查询,发现to_timestamp函数返回以下结果进行比较 -----下面的查询返回0(即False)--- 选择to_时间戳('2013-06-24 11:36:40 AM',yyyy MM dd hh:mi:ss a')>=to_时间戳('2013-06-24 11:20:00 AM','yyyy MM dd hh:mi:ss a')和to_时间戳('2013-06-24 11:36:40 AM',yyyy MM dd hh:mi:ss a')2013年6月24日10:3

我检查了您发布的以下查询,发现to_timestamp函数返回以下结果进行比较

-----下面的查询返回0(即False)---

选择to_时间戳('2013-06-24 11:36:40 AM',yyyy MM dd hh:mi:ss a')>=to_时间戳('2013-06-24 11:20:00 AM','yyyy MM dd hh:mi:ss a')和to_时间戳('2013-06-24 11:36:40 AM',yyyy MM dd hh:mi:ss a')2013年6月24日10:36:40+0000
至时间戳('2013-06-24 11:20:00 AM','yyyy-MM dd hh:mi:ss a')-->2013年6月24日10:20:00+0000


--要比较的第二个条件(返回false)--
至时间戳('2013-06-24 11:36:40 AM','yyyy-MM dd hh:mi:ss a')-->2013年6月24日10:36:40+0000 至时间戳('2013-06-24 12:50:00 PM','yyyy-MM dd hh:mi:ss a')-->2013年6月23日23:50:00+0000


正如您所注意到的,第二个条件将2013年6月24日与2013年6月23日进行比较,结果返回false

尝试下面返回真实结果的查询
---下面的查询返回1(即True)--/

选择时间戳(“2013-06-24 11:36:40 AM”,“yyyy-MM dd hh24:mi:ss a”)
>=至时间戳('2013-06-24 11:20:00 AM','yyyy-MM dd hh24:mi:ss a')
和to_时间戳('2013-06-24 11:36:40 AM','yyyy-MM dd hh24:mi:ss a')

我检查了您发布的下面的查询,发现to_timestamp函数返回下面的结果进行比较

-----下面的查询返回0(即False)---

选择to_时间戳('2013-06-24 11:36:40 AM',yyyy MM dd hh:mi:ss a')>=to_时间戳('2013-06-24 11:20:00 AM','yyyy MM dd hh:mi:ss a')和to_时间戳('2013-06-24 11:36:40 AM',yyyy MM dd hh:mi:ss a')2013年6月24日10:36:40+0000
至时间戳('2013-06-24 11:20:00 AM','yyyy-MM dd hh:mi:ss a')-->2013年6月24日10:20:00+0000


--要比较的第二个条件(返回false)--
至时间戳('2013-06-24 11:36:40 AM','yyyy-MM dd hh:mi:ss a')-->2013年6月24日10:36:40+0000 至时间戳('2013-06-24 12:50:00 PM','yyyy-MM dd hh:mi:ss a')-->2013年6月23日23:50:00+0000


正如您所注意到的,第二个条件将2013年6月24日与2013年6月23日进行比较,结果返回false

尝试下面返回真实结果的查询
---下面的查询返回1(即True)--/

选择时间戳(“2013-06-24 11:36:40 AM”,“yyyy-MM dd hh24:mi:ss a”)
>=至时间戳('2013-06-24 11:20:00 AM','yyyy-MM dd hh24:mi:ss a')
和to_时间戳('2013-06-24 11:36:40 AM','yyyy-MM dd hh24:mi:ss a')
您需要使用“am”或“pm”而不是“a”作为12小时的说明符

select to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh24:mi:ss a')
>= to_timestamp('2013-06-24 11:20:00 AM', 'yyyy-MM-dd hh24:mi:ss a') 
and to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh24:mi:ss a')
<= to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh24:mi:ss a')as a
解决这个问题是一个简单的过程。您从第二个查询中得到一个意外的“false”。因此,您将分别评估每个分支,以查看哪个分支是错误的:

to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss am')
嗯,你看看这个。12:50已变成
00:50
。12小时的偏移表明未识别
PM
。让我们看看:

  • AM、AM、PM或PM
    meridiem指示器(无周期)
看起来您需要的是
am
pm
,而不仅仅是
a
,正如您在使用的时间模式中所写的那样。让我们用修正后的指示器试试:

regress=> select to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh:mi:ss a'), 
  to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss a');
      to_timestamp      |      to_timestamp      
------------------------+------------------------
 2013-06-24 11:36:40+08 | 2013-06-24 00:50:00+08
(1 row)
成功了。将其反馈回原始查询,然后

regress=> select to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss am');
       to_timestamp      
------------------------
 2013-06-24 12:50:00+08
(1 row)
选择
to_时间戳('2013-06-24 11:36:40 AM','yyyy-MM-dd hh:mi:ss AM')>=
至时间戳('2013-06-24 11:20:00 AM','yyyy-MM-dd hh:mi:ss AM')
及
要使用时间戳(“2013-06-24 11:36:40 AM”,“yyyy-MM-dd hh:mi:ss AM”)您需要使用“AM”或“pm”而不是“a”作为12小时说明符

select to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh24:mi:ss a')
>= to_timestamp('2013-06-24 11:20:00 AM', 'yyyy-MM-dd hh24:mi:ss a') 
and to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh24:mi:ss a')
<= to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh24:mi:ss a')as a
解决这个问题是一个简单的过程。您从第二个查询中得到一个意外的“false”。因此,您将分别评估每个分支,以查看哪个分支是错误的:

to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss am')
嗯,你看看这个。12:50已变成
00:50
。12小时的偏移表明未识别
PM
。让我们看看:

  • AM、AM、PM或PM
    meridiem指示器(无周期)
看起来您需要的是
am
pm
,而不仅仅是
a
,正如您在使用的时间模式中所写的那样。让我们用修正后的指示器试试:

regress=> select to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh:mi:ss a'), 
  to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss a');
      to_timestamp      |      to_timestamp      
------------------------+------------------------
 2013-06-24 11:36:40+08 | 2013-06-24 00:50:00+08
(1 row)
成功了。将其反馈回原始查询,然后

regress=> select to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss am');
       to_timestamp      
------------------------
 2013-06-24 12:50:00+08
(1 row)
选择
to_时间戳('2013-06-24 11:36:40 AM','yyyy-MM-dd hh:mi:ss AM')>=
至时间戳('2013-06-24 11:20:00 AM','yyyy-MM-dd hh:mi:ss AM')
及

给时间戳(“2013-06-24 11:36:40 AM”,“yyyy-MM-dd hh:mi:ss AM”)“请解决它”。请根据此处的“新用户帮助”中提供的指导,以及此处的“关于询问更好的PostgreSQL问题的指导”,提供可以回答的详细问题:。你想完成什么?你预计会有什么结果?你已经尝试了什么?“请解决它”。请根据此处的“新用户帮助”中提供的指导,以及此处的“关于询问更好的PostgreSQL问题的指导”,提供可以回答的详细问题:。你想完成什么?你预计会有什么结果?你已经尝试了什么?你使用的诊断过程是好的,但结论是错误的。使用
hh24
将无法正确处理,例如,
2:20:00 pm
。您确实需要
am
meridiem指示器格式占位符。尽管出现了错误,但还是投票表决-感谢您的参与和帮助他人。是的,我明白了。谢谢您,先生,您使用的诊断过程很好,但结论是错误的。使用
hh24
将无法正确处理,例如,
2:20:00 pm
。您确实需要
am
meridiem指示器格式占位符。尽管出现了错误,但仍进行了投票——感谢您的参与和努力
select 
  to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh:mi:ss am') >=
  to_timestamp('2013-06-24 11:20:00 AM', 'yyyy-MM-dd hh:mi:ss am') 
  and 
  to_timestamp('2013-06-24 11:36:40 AM', 'yyyy-MM-dd hh:mi:ss am') <= 
  to_timestamp('2013-06-24 12:50:00 PM', 'yyyy-MM-dd hh:mi:ss am') as a