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

时间:2010-09-27 04:24:49

标签: c# .net sql-server

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

例如,源表中的原始日期格式保存为 YYYY / MM / DD

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

无论如何都要在原始日期格式完整的情况下检索日期值吗?

感谢

2 个答案:

答案 0 :(得分:5)

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

在SQL查询中,您可以使用

选择输出格式
CONVERT(varchar(30), theColumn, nnn)

其中“nnn”是此处列出的常见日期格式之一:MSDN

就个人而言,我发现该页面令人困惑,因此另一个(更有用的)页面位于此处:SQL Server Helper。从该页面:

CONVERT(VARCHAR(20), GETDATE(), 100) 

将返回'2005年1月1日下午1:29'

答案 1 :(得分:0)

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