我在SQL Server表中有一列,类型为date
,默认设置为yyyy-MM-dd
。我想像dd-MM-yyyy
一样使用它。
我该怎么做?
答案 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)
答案 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 来自产品;