【发布时间】:2021-11-03 17:23:34
【问题描述】:
每当两个日期的关系不正确时,我都会尝试在不同的表中标记一个字段。但是,数据集中的所有日期都不应标记任何内容(应为 0 而不是 1),但它们都标记。在查询期间更改日期格式是否有问题?真的卡在这里了
UPDATE Theatre_DQ_03_Integrity_CASES
SET AnaesToTheatreFlag = 1, TimeErrorFlag = 1
FROM Theatre_Cases_Landing a
INNER JOIN
(
SELECT Case_ID
FROM Theatre_Cases_Landing
WHERE (CaseCancelled IS NULL or CaseCancelled = 'N') AND (CONVERT(datetime,Anaesthetic_Start_DateTime) > CONVERT(datetime,In_Theatre_DateTime))
AND Anaesthetic_Start_DateTime IS NOT NULL AND In_Theatre_DateTime IS NOT NULL
) b
ON a.Case_ID = b.Case_ID
declare @var1 as datetime2 = '2019-09-04 11:12:00.000'
declare @var2 as datetime2 = '2019-09-04 11:13:00.000'
if @var1 < @var2 PRINT('TRUE')
【问题讨论】:
-
我没有看到目标表 (
Theatre_DQ_03_Integrity_CASES) 和 FROM/JOIN 条件之间存在关联,因此表中的每一行都会更新。 -
@DanGuzman 你如何解决这个问题?相同的内部连接方法似乎适用于其他目的?这两个表都与案例 ID 相关,谢谢
-
您能否在
Theatre_Cases_Landing中显示您认为有问题的一行?也许您的日期时间比较不适合您的要求。我假设您不认为Anaesthetic_Start_DateTime应该在In_Theatre_DateTime之前(对于未取消的案例)并希望update这些案例。如果您可以显示任何未正确处理的案例(带有日期时间),那将有所帮助。 -
在查询期间更改日期格式是否有问题? - 您将日期时间存储在 varchars 中?
-
根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。
标签: sql sql-server date tsql