我一直无法弄清楚如何将其他列而不是行写入Ruby中的CSV文件。在这种情况下,它们是SQL查询。
我的代码片段:
month = mysql.query("SELECT DATE_FORMAT(company_db.dates.starting_date,'%m') FROM company_db.dates.starting_date;")
day = mysql.query("SELECT DATE_FORMAT(company_db.dates.starting_date,'%d') FROM company_db.dates.starting_date;")
year = mysql.query("SELECT DATE_FORMAT(company_db.dates.starting_date,'%Y') FROM company_db.dates.starting_date;")
CSV.open("Dates.csv, "wb") do |csv|
csv << ["Month", "Day", "Year"]
csv << [(month.each {|row| csv << row}), (day.each {|row| csv << row}), (year.each {|row| csv << row})]
end
我得到的输出:
Month, Day, Year
1,
.
.
.
12,
1,
.
.
.
31,
1970,
.
.
.
2015
我想要的输出:
Month, Day, Year
1, 1, 1970
. . .
. . .
. . .
12, 31, 2015
感谢您的帮助。
答案 0 :(得分:1)
我相信Enumerable.zip是您正在寻找的方法。
鉴于您的三个问题:
csv << [ 'Month', 'Day', 'Year' ]
csv << month.zip( day, year )
答案 1 :(得分:-1)
results = mysql.query("SELECT DATE_FORMAT(company_db.dates.starting_date,'%m') AS month, DATE_FORMAT(company_db.dates.starting_date,'%d') AS date, DATE_FORMAT(company_db.dates.starting_date,'%Y') AS year FROM company_db.dates.starting_date;")
CSV.open("Dates.csv, "wb") do |csv|
csv << ["Month", "Day", "Year"]
results.each do |row|
csv << [row.month, row.date, row.year]
end
end