Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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
Mysql 在ruby中表示没有日期的时间_Mysql_Ruby On Rails_Ruby_Datetime_Time - Fatal编程技术网

Mysql 在ruby中表示没有日期的时间

Mysql 在ruby中表示没有日期的时间,mysql,ruby-on-rails,ruby,datetime,time,Mysql,Ruby On Rails,Ruby,Datetime,Time,有没有一种方法可以在ruby中表示时间而不附加日期?我正在做一个时间跟踪应用程序,我只需要输入/输出时间,有一个单独的日期栏 MySQL时间数据类型只存储时间,但在Rails中,它返回为2000年1月1日+任何时间 我应该忽略日期部分,还是有办法消除它?没有办法消除它: 时间在内部存储为自1970年1月1日00:00 UTC这一纪元以来的秒数(带分数) 只需将其格式化如下: t = Time.now t.strftime("at %I:%M%p") 我们只是将没有附加日期的时间存储为从午夜开始

有没有一种方法可以在ruby中表示时间而不附加日期?我正在做一个时间跟踪应用程序,我只需要输入/输出时间,有一个单独的日期栏

MySQL时间数据类型只存储时间,但在Rails中,它返回为2000年1月1日+任何时间


我应该忽略日期部分,还是有办法消除它?

没有办法消除它:

时间在内部存储为自1970年1月1日00:00 UTC这一纪元以来的秒数(带分数)

只需将其格式化如下:

t = Time.now
t.strftime("at %I:%M%p")

我们只是将没有附加日期的时间存储为从午夜开始的分钟数,存储在一个整数列中(这是Postgres而不是MySQL,尽管如此)。也许这种方法也适用于您?

我知道我可以这样格式化它,我更担心减法和两个不同的日期。您只需根据您的精度要求,使用t.hour、t.min、t.sec等手动处理。当输入时间是23:00,输出时间是01:00时会发生什么?如果发生这种情况,他们可以输入两个条目,这里没有人在这些时间工作,所以现在不是问题。但是,是的,唉,我希望它能在本机上支持这一点。是的,Ruby的时间存储秒,所以我正在寻找一个只存储小时、分钟和秒的类(我称之为TimeSpan),这样我就可以查询:`WorkLog.where(“workduration>”,TimeSpan.new(8,30,0))`啊,是的,我不需要以这种方式存储在db中,但这可能是比较它们的一种简单方法。ActiveSupport包含一个time.seconds\u since\u midnight方法。这正是我所需要的。这家伙真是个天才,如果可以的话,我会+100。该死的天才。值得一提的是,在夏令时成为问题的日子里,这可能不起作用,因为它们的分钟数与其他日子不一样。在我的具体案例中,它们被用来表示开放时间。自定义getter只是将分钟数转换为小时和分钟数。