2010-09-27 147 views
2

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

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

当我在具有日期设置为MM/DD/YY 机器使用SqlDatareader.GetValue它是atutomatically转换为该格式

有无论如何检索日期值与原始日期格式不变吗?

谢谢

回答

5

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

在一个SQL查询时,您可以选择

CONVERT(varchar(30), theColumn, nnn) 

输出格式,其中“NNN”是这里列出的常见日期格式之一:MSDN

我个人觉得页面混乱,所以另一个(更有用的)页面在这里:SQL Server Helper。从这个页面:

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

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

0

可能不是你要找的。但是,如果要存储格式化的日期时间,可能应该使用VARCHARCHAR(N)作为字段类型。我认为DATETIME字段是存储日期时间,它自己的格式不是那么重要(或它的意思)。但是,您可以在C#中将其重新转换为该格式。

+0

** **从来没有一个日期时间存储为一个格式化字符串(原谅的夸张)。 – 2010-09-27 04:37:29