从 sql 导出到 csv 时 -> 如何更改日期格式



我做了一个小项目(c#app(your text,它将sql数据库中的数据导出到csv文件中。我想将日期格式从|10.01.2022更改为->2022.01.10.

谢谢你的帮助。

问候,

vit

using System.Data;
using System.Data.SqlClient;
namespace ExtractApp
{
class Program
{
static void Main(string[] args)
{
GetCSV();
}
private static string GetCSV()
{
using (SqlConnection cn = new SqlConnection(GetConnectionString()))
{
cn.Open();
return CreateCSV(new SqlCommand("Select * from [reports].[xxx]", cn).ExecuteReader());
cn.Close();

}
}
private static string CreateCSV(IDataReader reader)
{
string file = "C:\SqlToCsv\Data.csv";
List<string> lines = new List<string>();
string headerLine = "";
if (reader.Read())
{
string[] columns = new string[reader.FieldCount];
for (int i = 0; i < reader.FieldCount; i++)
{
columns[i] = reader.GetName(i);

}
headerLine = string.Join(",", columns);
lines.Add(headerLine);
}
//data
while (reader.Read())
{
object[] values = new object[reader.FieldCount];
reader.GetValues(values);
lines.Add(string.Join(",", values));
}
//file
System.IO.File.WriteAllLines(file, lines);
return file;

}
}
}

由于您的列类型是Date,它将被映射到C#中的DateTime(docs(,因此我们可以使用模式匹配来获得DateTime,并使用.ToString方法将其转换为string

object[] values = new object[reader.FieldCount];
reader.GetValues(values);
for (int i = 0; i < values.Length; ++i)
{
if (values[i] is DateTime dateTimeValue)
{
values[i] = dateTimeValue.ToString("yyyy.MM.dd", System.Globalization.CultureInfo.InvariantCulture);
}
}
lines.Add(string.Join(",", values));

更多信息:

  • 模式匹配
  • 标准日期和时间格式字符串
  • 自定义日期和时间格式字符串

您可以用sql语法编写它;类似于日期字段的名称为:created_date

在sql中,您可以通过以下方式更改其格式:

`Select DATE_FORMAT(created_date, "%M.%m.%d"), other_fields then your condition ` 

祝你玩得愉快。。。

相关内容

  • 没有找到相关文章

最新更新