我想在我的日期时间找到重复项。由于我的 created_at
因毫秒而与任何行都不相等,我想将其删除,这样我现在可以显示具有相同 created_at
的所有重复项。但是此语法返回一个错误,即 datetime column does not exist in my CONVERT
SELECT
sd.global_code AS sd_id,
sm.tag AS tag,
SUM(sm.quantity) AS quantity,
CONVERT(datetime, CONVERT(varchar, sm.created_at, 120), 120) AS date ## returns an error ##
FROM stock_distributions sd
INNER JOIN stock_movements sm ON sd.id = sm.stock_distribution_id
WHERE (sm.tag = 'Shelf Transfer' OR sm.tag = 'Transfer (Put-Away to Shelf)')
AND sl.site_id = 4
GROUP BY sd.global_code
HAVING SUM(sm.quantity) < 0
AND COUNT(convert(datetime, convert(varchar, sm.created_at, 120), 120)) > 1
我做的对吗?在 SELECTING sm.created_at
上是否有更快的方法,直到秒数之前具有相同的日期和时间,因此输出将类似于 2019-03-31 4:08:33
?
最佳答案
您可以通过将日期转换为字符串来使用字符串比较
to_char( mydate, 'rrrrmmddhh24ss' )
关于sql - 删除 SQL 中 created_at 的毫秒部分以与其他日期时间进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58049271/