sql - UPDATE 是更改表中最近的 DATETIME 条目的最简单方法吗?
问题描述
我很高兴你在这里!:)
我有一张表,每晚从批量插入中填充。工作问题是我需要用前一天的日期标记最近的条目
我在利用 select 的其他表上使用了 getdate() -1,因此在将数据输入表之前更改了数据。
但是我如何从表中选择最近的条目并将它们的值更改为前一天的日期。我没有使用 UPDATE.. 但我的示例似乎是一个很好的用例。
但是,我不知道如何仅更新所需的(最近的)条目。我担心我不会不小心将所有表格条目标记为 1 天前。
下面是表结构的示例。非常感谢任何建议或示例
解决方案
您将需要update
更改所需的日期值,但正如您所说,您不希望“不小心将所有表条目标记为 1 天前”。
所以在你写你的update
语句之前,你需要掌握一个select
完美隔离数据的语句。然后将语句修改为select
语句是微不足道的update
。
但是您可能已经注意到,您所指的“日期”实际上是一种datetime
类型,其中包含一个时间组件。因此,为了方便参考今天的日期,您需要忽略时间部分。您可以通过将其datetime
转换为date
类型来做到这一点。
像这样的东西:
select * from [your_table] where cast([DATE] as date) = cast(getdate() as date)
为了引用昨天,使用dateadd
“添加”-1 天到今天的日期。那么您的更新将是这样的:
update [your_table] set [DATE] = cast(dateadd(day, -1, getdate()) as date) where cast([DATE] as date) = cast(getdate() as date)
推荐阅读
- python-3.x - python sqlite3记录未使用占位符函数插入数据库
- tensorflow - 如何在我自己的 GCP VM 或 Jupterlab 实例中使用 TensorFlow Embeddings Projector?
- mysql - 在将数据添加到mysql数据库中的表之前检查
- reactjs - Gatsby 条件渲染组件
- android - 如何从android中的谷歌地图中删除所有标记和折线?
- python - 计算数组的一部分内的最大值和索引
- c# - 依赖注入不适用于具有 Azure Key Vault Value asp.net core 3.0 的 RabitMQ 服务总线
- c#-8.0 - C# switch 表达式 null 大小写
- python - 函数的 Python 类型检查
- javascript - 在 Nightwatch 中,如何调用“部分”中存在的测试命令?