【问题标题】:how to format date in sql server如何在sql server中格式化日期
【发布时间】:2012-11-08 14:43:10
【问题描述】:

我正在尝试更新表格中的日期字段,但会将日期格式转换为 dd/mm/yy。 我已经尝试过这种方法,但它仍然显示像这样 yyyy-mm-dd

 UPDATE MyTable 
        SET MyField = convert (varchar,GETDATE(), 101)
       where ID = '221'

【问题讨论】:

  • MyField 是什么数据类型?您应该将日期存储为datetime 或date,而不是varchar。在选择或在您的应用程序层中担心格式。
  • 日期未以格式存储。您在表示层或查询数据时格式化日期。

标签: sql sql-server sql-server-2008 formatting sql-update


【解决方案1】:

插入时不应考虑格式化。由于MyField 的数据类型为datetime,因此只需将其更新为GETDATE(),如下所示:

 UPDATE MyTable 
 SET MyField =  GETDATE()
 where ID = '221'

日期不以格式存储。

您应该将日期/日期时间值存储到date or datetime data types.

然后,在选择这些日期值时,您可以像在问题中那样使用CONVERT 函数来格式化日期。您将在此页面中找到所有代码及其格式。选择适合你的。比如:

SELECT
  CONVERT(VARCHAR(10), myfield, 120) 'With formatting'
FROM @table;

Demo

【讨论】:

  • MyFied 的数据类型只是 Date。我需要将其更改为 DateTime 数据类型吗?
  • @moe - Date 可以,如果您不需要时间部分。它会按照我发布的方式工作,它将接受GETDATE() 函数。
  • 感谢 Mahmoud,但它仍然显示这种格式 yyyy-mm-dd。我怎样才能以这种格式存储它mm-dd-yy?谢谢
  • @moe - 将其存储为 DATE 并将代码 120 与 CONVERT 函数一起使用。查看我的编辑。
【解决方案2】:

萌,

SQL 中的日期和日期时间是无格式存储的。插入/更新时使用格式没有意义...仅在选择时使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    相关资源
    最近更新 更多