Mysql 如何在结果集中获取日期格式?
我有一个sql从mysql中获取数据,我使用dateformat转换日期所需的格式 下面是sqlMysql 如何在结果集中获取日期格式?,mysql,ruby-on-rails,Mysql,Ruby On Rails,我有一个sql从mysql中获取数据,我使用dateformat转换日期所需的格式 下面是sql SELECT m.id, m.subject, m.body, m.read, m.hide, m.thread_id, DATE_FORMAT(m.sent_date, '%d-%b-%Y') sent_date, u.username to_name FROM messages m, users u WHERE u.school_id = m.school_id
SELECT
m.id,
m.subject,
m.body,
m.read,
m.hide,
m.thread_id,
DATE_FORMAT(m.sent_date, '%d-%b-%Y') sent_date,
u.username to_name
FROM
messages m,
users u
WHERE
u.school_id = m.school_id AND
u.id = m.to_user_id AND
m.school_id = 18 AND
m.user_id = 53 AND
m.status = 'sent'
ORDER BY m.sent_date DESC
当我直接在mysql中运行这个sql时,它工作正常,发送日期为(2010年4月19日)。在ruby中执行此操作时,在结果集中,发送日期存储为(2010年4月20日星期二00:00:00 UTC)
puts语句打印“2010年4月20日星期二00:00:00 UTC”
如何在mysql结果和ruby结果集中获得相同的日期格式
谢谢,如果您使用某种日期列类型在数据库中存储此字段,则它不是字符串,而是日期对象。您可以使用方法进行输出格式化。对于2010年4月19日的格式,您可以使用
puts messages[0]['sent_date'].strftime("%d-%b-%Y")
如果使用某种日期列类型将此字段存储在数据库中,则它不是字符串,而是日期对象。您可以使用方法进行输出格式化。对于2010年4月19日的格式,您可以使用
puts messages[0]['sent_date'].strftime("%d-%b-%Y")
您不能在查询中使用“AS”,因此它将采用数据库中设置的默认数据类型
下面的方法应该有效。加油站
DATE_FORMAT(m.sent_date, '%d-%b-%Y') AS sent_date
编辑为“AS关键字是可选的”
我检查了我自己的代码&我得出了以下结论
当我写一些像following这样的东西时1] 列名相同且不带“AS” 2] 列名相同且带有“AS” 3] 列名不同,且w/0“为” 您不能在查询中使用“AS”,因此它将采用数据库中设置的默认数据类型 下面的方法应该有效。加油站
DATE_FORMAT(m.sent_date, '%d-%b-%Y') AS sent_date
编辑为“AS关键字是可选的”
我检查了我自己的代码&我得出了以下结论
当我写一些像following这样的东西时1] 列名相同且不带“AS” 2] 列名相同且带有“AS” 3] 列名不同,且w/0“为”
DATE\u格式(m.sent\u DATE、%d-%b-%Y')日期格式
或您的订单将失败DATE\u格式(m.sent\u DATE、%d-%b-%Y')日期格式
或您的订单将失败fail@Col.夏普内尔:-请检查我编辑过的答案,我想对此发表任何评论。感谢您提供解决方案。你能解释一下为什么会发生在同一个别名上吗?对不起,prasanna,我真的不知道,我把调试器放在这里检查了一下。如果有一天我得到了答案,我一定会在这里发布。@Sharpnel上校:-请检查我编辑的答案,我想对这个问题发表任何评论。谢谢你给出的解决方案。你能解释一下为什么会发生在同一个别名上吗?对不起,prasanna,我真的不知道,我把调试器放在这里检查了一下。如果有一天我得到了答案,我一定会在这里发布。
@check = DATE_FORMAT(m.sent_date, '%d-%b-%Y') AS sent_date
@check[0].sent_date >> 22-Mar-2010
@check = DATE_FORMAT(m.sent_date, '%d-%b-%Y') date
@check[0].date >> 22-Mar-2010