繁体   English   中英

错误:函数strftime(未知,没有时区的时间戳)不存在

[英]ERROR: function strftime(unknown, timestamp without time zone) does not exist

我正在做一个具有预订功能的网站。 我想查看一个当前日期的预订清单。

我的控制器上有以下代码:

def today
@vlts = Vlt.where("strftime('%d/%m/%Y', date_time) = ?", Time.now.strftime('%d/%m/%Y'))
end

我认为以下代码如下:

<% @vlts.each do |vlt| %>
  <tr>
    <td><%= vlt.date_time %></td>
    <td><%= vlt.name %></td>
    <td><%= vlt.phone_no %></td>
    <td><%= vlt.no_ppl %></td>
    <td><%= vlt.message %></td>
    <td><%= link_to 'Edit', edit_vlt_path(vlt) %></td>
    <td><%= link_to 'Destroy', vlt, method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
<% end %>

但是,当我在http:// localhost:3000 / today上运行页面时,收到以下错误,这使我抓狂。

PG :: UndefinedFunction:错误:函数strftime(未知,没有时区的时间戳)不存在第1行:选择“ vlts”。*从“ vlts”中(strftime('%d /%m /%Y',日期。 .. ^提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。:SELECT“ vlts”。* FROM“ vlts”其中(strftime('%d /%m /%Y', date_time)= '18 / 01/2018')

感谢您的帮助。

strftime是Ruby函数。 您不能在数据库查询中调用它。 如果要比较两个时间戳作为查询中的日期,则需要使用SQL的函数,而不是Ruby的函数。

请参阅如何在Postgresql中的datetime字段中比较日期?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM