2009-05-20 102 views
3

我有一个表在SQL Server 2005具有日期时间字段。我想将日期时间值保存为mm/dd/yyyy hh:mm:ss格式,但我猜SQL Server允许日期时间格式为yyyy-mm-dd HH:mm:ss.ll格式。SQL Server日期时间数据类型不允许多种格式

我可以将mm/dd/yyyy hh:mm:ss格式的日期时间值保存为一个varchar,但是这打乱了我在该日期时间字段上排序表的意图。

有什么在我的做法缺少什么?有什么建议么?

欢呼

回答

7

日期时间类型确实是而不是按照您的声明将它存储在yyyy-mm-dd HH:mm:ss.ll中。

日期时间列存储为8字节二进制数据。 yyyy-mm-dd HH:mm:ss.ll格式就是它在查询中的返回方式。要以其他格式显示,请查看CONVERT函数。

+0

我以为他们是双精度浮点数,一般是32位。但它一直以来我看看... – 2009-05-20 20:58:49

2

当您选择它像这样你可以样式的日期时间:

convert(varchar, [datefield], style) 

,它允许你当你得到它格式化日期。这使得存储它时的格式变得微不足道。

这里是所有你能使用的样式的list

0

日期未实际保存在一个特定的格式;它以默认格式或您选择的格式显示。

你在哪里“看到”的日期?您的应用程序可能不会显示与SQL Server Management Studio相同的日期。

用户如何格式化日期,以便它可以保存为您的应用程序也是一个问题(只要发送一个有效日期到服务器)。

0

我必须承认,我从来没有试图迫使数据库保持任何特定的日期/时间格式。我想这不是真的有必要。

所以,你有一个日期/时间字段,你可以通过它的数据进行排序?这与您从DBMS需要的一样多。在应用程序的表示层中执行最终的格式。