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

When Exporting from sql to Csv -> How I change date format

我制作了我的小项目(c# 应用程序)your text,它将数据从 sql 数据库导出到 csv 文件中。 我想从 | 更改日期格式10.01.2022 至 -> 2022.01.10.

感谢您的帮助。

此致,

活力

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#中会映射到DateTimedocs),所以我们可以使用模式匹配得到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));

更多信息: