34

我必须比较 rails 中的日期以获取该日期之后的值我已发送日期,"2013-03-04T06:26:25Z"但实际上数据库中的记录包含日期如下2013-03-04 06:26:25.817149,所以当我检查日期时它也返回该记录但我想要在那之后的记录日期。如何从数据库中删除毫秒?请帮我。

4

3 回答 3

51

我有一个类似的问题

在将时间对象发送到数据库之前,像这样更新您的时间对象:

time.change(:usec => 0)
于 2013-03-04T10:33:02.043 回答
31

由于 ruby​​ 1.9 你可以使用round

t = Time.now.round
t.usec # => 0
于 2017-04-12T09:29:33.930 回答
6

我也遇到了这个问题,但是当我按照@Intrepidd 的回答中所示应用更改时,它并没有影响我的时间对象的微秒。

请注意(至少目前)该:usec密钥仅适用于该Time#change方法,而不适用于该DateTime#change方法。

该方法会忽略它不接受的键,因此除非您进一步检查对象(例如 with )DateTime#change,否则您将无法判断您尝试的微秒更改不起作用。DateTime#rfc3339(9)

因此,在尝试进行此更改之前,请确保您使用的是Time对象,而不是DateTime对象。

于 2016-11-17T01:55:21.513 回答