Mysql表一行=>
id = 1
time =“21:00”// datatype => TIME
name =“xyz”
我正在提取数据
@person = @person.all
[#<persons id: 1, time: "2000-01-01 21:00:00, name: "xyz", created_at: "2014-03-19 05:13:43", updated_at: "2014-03-19 05:13:43", creator_id: nil">
@person [0] .time#2000-01-01 21:00:00
它应该是“21:00”对吗?
为什么我得到“2000-01-01 21:00:00”输出任何建议?
答案 0 :(得分:2)
从查询中获取数据后,您可以格式化为显示时间:
获取所有记录:
@person = @person.all
格式化为时间。
@person.first.time.strftime("%H:%M")
获取有关日期和时间格式click here
的更多信息答案 1 :(得分:1)
@person[0].time
返回该值的Ruby Time
对象,其中包括日期。如果您将其直接输出到控制台或浏览器窗口,Ruby会将其转换为Time
对象的默认字符串表示形式,该对象再次包含日期。
要格式化显示时间,您需要查看options for date/time formatting using Rails' internationalization API。
答案 2 :(得分:0)
尝试使用strftime - 它允许您指定格式
即:
@person [0] .time.strftime(&#34;%m /%d /%Y%H:%M:%S&#34;)
答案 3 :(得分:0)
将数据类型从TIME更改为VARCHAR:
这不是好方法。我认为你应该考虑所有关于时间的情况,你有很多可能需要TIME对象到日期等其他操作。
如果在VARCHAR中存储小时和分钟,则无法执行TIME对象等任何操作。请考虑一下,如果您将来需要数据库中的小时或日期,但是您在数据库中只存储了小时和分钟,那么您没有存储(TIME对象)它,那么它将被视为糟糕的方法和失败。
你将TIME存储在小时和分钟的地方然后这是未来前景的好理由。
如果您存储时间对象,那么您将存储小时和分钟的其他信息。如果您需要日期,时间,小时,分钟甚至秒,那么您可以按时间格式计算。
如果您存储时间,则只有一个额外的工作时间格式,从性能的角度来看可以忽略不计。
以字符串格式存储TIME对象而不是小时和分钟总是更好。