C# SqlDatareader GetValue根据系统日期格式返回日期值

C# SqlDatareader GetValue根据系统日期格式返回日期值,c#,.net,sql-server,C#,.net,Sql Server,您好,我正在使用SqlDatareader从表中读取值,问题是它总是根据机器日期格式设置格式化值 例如,源表中的原始日期格式保存为 yyyy/mm/dd 当我在日期设置为MM/dd/YY的机器中使用SqlDatareader.GetValue时 它会自动转换为该格式 是否仍然可以在原始日期格式不变的情况下检索日期值 谢谢可能不是你想要的。但是,如果您想存储格式化的日期时间,可能更应该使用VARCHAR或CHAR(N)作为字段类型。我认为DATETIME字段用于存储DATETIME,它本身的格式并

您好,我正在使用SqlDatareader从表中读取值,问题是它总是根据机器日期格式设置格式化值

例如,源表中的原始日期格式保存为 yyyy/mm/dd

当我在日期设置为MM/dd/YY的机器中使用SqlDatareader.GetValue时 它会自动转换为该格式

是否仍然可以在原始日期格式不变的情况下检索日期值


谢谢

可能不是你想要的。但是,如果您想存储格式化的日期时间,可能更应该使用
VARCHAR
CHAR(N)
作为字段类型。我认为
DATETIME
字段用于存储DATETIME,它本身的格式并不重要(或者它的用途)。但是,您可以在C#中将其重新转换回该格式。

没有“原始日期格式”,日期在内部保留为数字,而不是字符串

在SQL查询中,可以使用

CONVERT(varchar(30), theColumn, nnn)
其中“nnn”是此处列出的常见日期格式之一:

就我个人而言,我觉得这个页面令人困惑,所以另一个(更有用的)页面在这里:。从该页:

CONVERT(VARCHAR(20), GETDATE(), 100) 
将返回“Jan 1 2005 1:29PM”

切勿将日期时间存储为格式化字符串(请原谅夸张)。