【问题标题】:Sql server date Column formatsql server 日期列格式
【发布时间】:2011-03-05 10:21:49
【问题描述】:

我在 SQL Server 表中有一个类型为date 的列,其默认设置为yyyy-MM-dd。我想把它改成dd-MM-yyyy

我该怎么做?

【问题讨论】:

    标签: sql sql-server datetime


    【解决方案1】:

    它的默认设置是 yyyy-MM-dd

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

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

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

    【讨论】:

    • 这个答案是错误的,默认格式取决于数据库的语言
    • @Madd0 - 不,日期时间列的格式不存在。用于将日期时间转换为字符串的默认格式可能取决于数据库的语言设置,但这根本不是一回事,而且它肯定不是可以在列级别应用的东西,这就是 OP 的样子正在请求。
    【解决方案2】:

    你在找这个吗?

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

    从这里查看其他格式http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/

    【讨论】:

    • 建议的 anubhavg.wordpress 链接页面上的单引号不正确,无法在 SQL Server Management Studio 中提交。它们是 ' ' 引号而不是 ' 引号。
    【解决方案3】:

    你可以像这样格式化输出:

    SELECT convert(varchar, my_date_column, 105)

    查看here了解不同的格式。

    但是@Guffa 说的是真的。

    【讨论】:

      【解决方案4】:

      数据库将数据存储为时间点。当您选择时,例如使用 Query Analyzer og SSMS,屏幕上的格式将取决于服务器上使用的本地化。

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

      我相信最好的方法是让应用程序处理日期格式并让数据库简单地存储它。大多数编程语言和报告工具都有比 SQL Server 更好的日期格式设置方法。

      【讨论】:

      • 我在以“Feb 3 2012 12:00AM”格式存储的 my_date_column 数据中进行了相同的查询。我想更新它......以“dd-MM-yyyy”格式。有可能吗?
      【解决方案5】:

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

      语法:

      SELECT FORMAT(column_name,format) FROM table_name;
      

      在此处输入代码(示例如下)

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-14
        • 2017-05-12
        • 1970-01-01
        • 1970-01-01
        • 2016-08-01
        • 1970-01-01
        • 2019-01-23
        • 2011-10-05
        相关资源
        最近更新 更多