result = connect.query("SELECT * FROM data WHERE event_type = 'ALARM_OPENED' AND severity = '2'")
equipments = result.map { |print_this| [print_this['sourcetime'], print_this['description']] }
p equipments
MySQL工作台中sourcetime
的数据类型设置为TIME
我得到的结果是2000-01-01 12:00:04 +0100
我想只获得时间12:00:04
并删除日期和+0100
答案 0 :(得分:1)
你能尝试 strftime("%I:%M%p")
equipments = result.map { |print_this| print_this.sourcetime.strftime("%I:%M%p") }
答案 1 :(得分:1)
实现这一目标需要两个步骤:
Time.parse
从数据库返回的字符串为Time
的实例。 Time#strftime
将Time
的实例格式化为所需的输出格式。要显示一个时间的小时,分钟和秒(没有日期和时区信息),请使用'%H:%M:%S'
指令(有关更多示例,请参阅docs)。
require 'time' # `Time.parse` is not Ruby Core but from the Standard Library
equipments = result.map do |record|
[
Time.parse(record['sourcetime']).strftime('%H:%M:%S'),
record['description']
]
end