Mysql 如何在结果集中获取日期格式?

Mysql 如何在结果集中获取日期格式?,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

我有一个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 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