【问题标题】:I try to convert date format in sql but it still doesn't work我尝试在 sql 中转换日期格式,但它仍然不起作用
【发布时间】:2022-11-14 21:11:21
【问题描述】:

当我查询数据库时,我使用 CONVERT() 函数尝试将日期格式(如 DD/MM/YYYY)转换为代码 103,但没有任何反应。数据字段仍以 YYYY/MM/DD 显示默认格式。

UPDATE STAFF
SET BIRTH = CONVERT(smalldatetime,'26/08/1900',103)
WHERE ID = 'SF01'

我该如何解决这个问题?我是新手,所以我不知道很多 SQL

【问题讨论】:

  • 请问smalldatetime列是什么数据类型
  • MySQL <> SQL Server,你是什么实际上使用?
  • 如果这是 SQL Server,smalldatetime数据类型 @RiggsFolly 。 CONVERT 的参数是数据类型、表达式[、样式]。如果是 MySQL,则语法无效,因为根据documentation MySQL 的实现最多只有 2 个参数:表达式和(数据)类型。
  • 请仅标记您实际使用的 DBMS
  • 客户端工具决定您的日期如何显示。你用的是什么客户端工具?

标签: sql sql-server


【解决方案1】:

如果您想在表格中以DD/MM/YYYY 格式存储日期,那么您可以做两件事,将列数据类型更改为varchar 或更改运行SqlServer 的机器上的区域设置并将其保留为date类型。
如果您决定将其存储为varchar,则在插入或更新时需要使用Format 函数:Format(MyDate, 'DD/MM/YYYY')
另一种可能的选择是将数据存储为日期,但在查询时使用Format() 以获取所需格式。

【讨论】:

  • FORMAT 太可怕了减缓函数,并建议将日期(和时间)数据存储在数据库中作为varchar糟糕的主意。 '19/01/2022''21/12/1997'不是, 例如。如果日期(和时间)值的格式为提出了这很重要,那是表示层的任务,而不是 SQL 层的任务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-09
相关资源
最近更新 更多