Sql服务器日期列格式

问题描述:

我在SQL Server表中有一列,类型为date,其默认设置为yyyy-MM-dd。我想改变它像dd-MM-yyyySql服务器日期列格式

我该怎么办?

其默认设置为YYYY-MM-DD

不,不是这样的。没有任何与该领域相关的格式化信息。

该值未由数据库格式化,仅作为时间点返回。将该值格式化为其文本表示形式是由从数据库获取数据的应用程序完成的。

因此,您可以在数据库中做任何事情来更改日期值的格式设置,您必须更改数据的显示位置。

+2

此答案错误,默认格式取决于数据库的语言 – madd0 2011-03-05 10:41:00

+1

@ Madd0 - 不,datetime列的格式不存在。用于将日期时间转换为字符串的默认格式可能取决于数据库的语言设置,但它根本不是同一件事,它当然不是可以在列级应用的东西,这是OP看起来似乎要求。 – 2011-03-05 10:53:47

+2

为什么downvote?如果你不解释你认为什么是错的,它不能改善答案。 – Guffa 2014-03-18 15:53:11

您是否正在寻找?

SELECT convert(varchar, getdate(), 105) – dd-mm-yyyy 

,并从这里看到http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/

其他格式可以格式化输出,像这样:

SELECT convert(varchar, my_date_column, 105)

不同的格式见here

但是@Guffa说的是真的。

数据库将数据存储为一个时间点。当您从中选择时,例如使用查询分析器og SSMS,屏幕上的格式将取决于服务器上使用的本地化。

您应该在应用程序中格式化日期。您可以使用CONVERT(varchar(19), datecolumn, 105)其中105是特定格式的代码,请参阅SQL Server帮助以获取更多代码。你需要明白,如果你这样做,你已经将列的数据类型改为varchar,这意味着你不能用它来做日期计算或其他特定于日期时间的任务。

我相信最好的方法是让应用程序处理日期格式并让数据库直接存储它。大多数编程语言和报表工具比SQL Server有更好的格式化日期的方法。

+0

我以“Feb 3 2012 12:00 AM”格式存储的my_date_column数据中的hv相同查询bt。我想以“dd-MM-yyyy”格式更新它... 有可能吗? – Niks 2012-09-26 06:54:34

我认为你可以使用format()函数作为替代方法。

语法:

SELECT FORMAT(column_name,format) FROM table_name; 

在这里输入的代码(下面的示例)

SELECT产品名称,价格,FORMAT(NOW(), 'DD-MM-YYYY')AS PerDate FROM产品;