Sql server日期列格式

时间:2011-03-05 10:21:50

标签: sql sql-server datetime

我在SQL Server表中有一列,类型为date,默认设置为yyyy-MM-dd。我想像dd-MM-yyyy一样使用它。

我该怎么做?

5 个答案:

答案 0 :(得分:10)

  

其默认设置为yyyy-MM-dd

不,不是。根本没有与该字段关联的格式信息。

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

因此,您无法在数据库中更改日期值的格式,您必须更改显示数据的位置。

答案 1 :(得分:3)

你在找这个吗?

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

并在此处查看其他格式http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/

答案 2 :(得分:1)

您可以将其格式化为输出,如下所示:

SELECT convert(varchar, my_date_column, 105)

有关不同的格式,请参阅here

但@Guffa说的是真的。

答案 3 :(得分:1)

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

您应该在应用程序中设置日期格式。您可以使用CONVERT(varchar(19), datecolumn, 105)其中105是特定格式的代码,请参阅SQL Server帮助以获取更多代码。您需要了解如果这样做,您已将列的数据类型更改为varchar,这意味着您无法使用它来进行日期计算或特定于datetime的其他任务。

我认为最好的方法是让应用程序处理日期格式,让数据库只存储它。大多数编程语言和报告工具都有比SQL Server更好的格式化日期的方法。

答案 4 :(得分:1)

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

语法:

SELECT FORMAT(column_name,format) FROM table_name;

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

选择ProductName,Price,FORMAT(Now(),'DD-MM-YYYY')AS PerDate 来自产品;