sql - 替换日期的某一部分

标签 sql sql-server

我们正在创建一个演示数据库。所以他们需要我将包含所有日期的列更改为特定日期。

只替换月份和日期,并保持年份不变。

例如:2012 年 3 月 12 日、1990 年 6 月 19 日

解决方案:01/01/2012,01/01/1990

他们想把月份和日期设为:01/01

我的查询如下:

update Tablename set column = REPLACE(column, select substring(column,1,5) from Tablename ,'01/01') ;

但我收到如下所述的错误:

Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'select'.
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '01/01'.

如有任何帮助/建议,我们将不胜感激。

最佳答案

不要通过字符串操作更改日期。它肯定会打破道路,而且速度更慢。

UPDATE TableName
SET [column] = DATEADD(year,DATEDIFF(year,0,[column]),0)

关于sql - 替换日期的某一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17455328/

相关文章:

c# - Func<t, bool> vs C# lambda 中的手动表达式性能

c# - 使用存储过程更新动态名称表

sql - 如何从 SQL 查询中快速获得结果

javascript - 意外的 token 导出异步函数

sql - 在 SQL 更新期间跳过过去的转换错误并继续的最佳方法是什么?

mysql - 从 Microsoft SQL 背景学习 MySql

sql-server - 是否可以将标准的ado连接字符串传递给Invoke-SqlCmd

sql - 用SQL计算机器状态时间

MySql 条件停止脚本执行

java - 我怎么知道连接池和准备好的语句正在工作?