当前位置: 首页 > 知识库问答 >
问题:

更新后日期格式值未从以前的格式更新为新格式

柯学
2023-03-14

当我将日期格式为MMM DD,YYYY的表中的列更新为新格式时。格式不会更改为所需的格式,即YYYY-MM-DD HH:MM:SS。即使更新不同的值,如getdate()。日期将更改,但格式将保持不变。

当前值&列的格式类型为varchar

杜埃达特

2020-06-27 00:0000.000

Update语句

update TableName
  set  
  DueDate =  CAST([DueDate] AS smalldatetime),     
  LastSyncDateTime = GETDATE()
where CaseGuid =  'DA2CE6A1-0394-463E-8E8D-962F3A24ADC8' 

共有1个答案

慕弘深
2023-03-14

“日期显示格式”和“日期存储格式”之间存在着巨大的混淆。非常简短的解释是,您提到的只是客户端显示格式,而SQL Server有特定的格式,用于存储日期(请记住,服务器只存储0和1)。

您可以使用不同的样式(显示格式的正式名称是样式)将日期插入到表中,也可以使用不同的样式在客户端显示日期,但从“SQL Server的观点”来看,根据所使用的日期类型,日期始终是相同的。

为了解决您最初的需求,您所需要做的就是向服务器提供有关您在客户端(在查询中)使用的样式的信息。这是通过使用带有第三个参数的显式CONVERT来完成的,该参数是样式。

例如,如果您在客户端使用像DD/MM/YYYY这样的以色列格式,那么您应该使用convert(DATE,'27/02/2021',103)

有关不同样式的更多信息,您可以查看此文档。

注意:如果您想要以现有样式没有覆盖的特定格式显示日期,那么您可以在查询中使用函数format()。这个函数非常灵活,可以以您的特定格式返回数据。请记住,此函数将以字符串形式返回数据,而不再是日期。

DECLARE @D DATE
SET @D = CONVERT(DATE, '27/02/2021', 103) -- convert string to date for storing 
select FORMAT(@D, 'Day:dd, Month:MM, Year:yyyy') -- convert date to string for displaying
 类似资料:
  • 本文向大家介绍如何在MySQL中更新日期格式?,包括了如何在MySQL中更新日期格式?的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是转换日期格式的查询- 这将产生以下输出-

  • 我正在使用apache POI更改excel表中的单元格。更改值后,与已更改的单元格对应的公式的单元格不会更新。 当我进入excel并单击带有公式的单元格,然后在函数栏中单击时,公式会更新。 A1仍然等于3,直到我点击那个单元格。 刷新工作簿或工作表也不起作用。这是excel或POI的问题吗?有人能想出一个变通办法吗?

  • 问题内容: 我无法将日期格式更改为。 这是我当前的实现: 输出:[WST 2013年5月28日星期二00:00:00] 有人可以帮我吗,谢谢!:D 我添加了此while语句,然后将日期格式再次设置为默认格式。 问题答案: 没有格式。它仅是格林尼治标准时间1970年1月1日00:00:00以来的毫秒数 当您执行操作时,它只是提供对象的默认方法输出。 您需要使用将实际格式化为 哪个输出… 扩展以满足变

  • 我从open API中获取的日期是。我想以以下方式格式化它。下面是我尝试的方法: 这将抛出一个错误,说明: 请注意,如果我从open api中提取的数据是,那么这个方法可以正常工作,并返回 请建议和劝告。

  • 我要在数据库中输入任务的开始日期和截止日期。但是保存数据库的格式是这样的:Tue Apr 15 13:46:38 BST 2014 I want in yyyy-MM-dd格式。 这是我用来编写数据库中数据的代码: ----------形式---------