sql - 如何在 SQL Server 中获取 datetime 重复行?

标签 sql sql-server database date datetime

我正在尝试在表中查找重复的 DATETIME 行,

我的列有日期时间值,例如 2015-01-11 11:24:10.000

我必须在 2015-01-11 11:24 类型中获取重复项。剩下的,不重要。当我将 SELECT 与“convert(nvarchar(16),column,121)”一起使用时,我可以获得正确的值,但是当我将其放入代码中时,我必须使用“group by”语句, 所以

我的代码是:

  SELECT ID,
         RECEIPT_BARCODE,
         convert(nvarchar(16),TRANS_DATE,121),
         PTYPE
    FROM TRANSACTION_HEADER
   WHERE TRANS_DATE BETWEEN '11.01.2015' AND '12.01.2015' 
GROUP BY ID,RECEIPT_BARCODE,convert(nvarchar(16),TRANS_DATE,121),PTYPE
  HAVING COUNT(convert(nvarchar(16),TRANS_DATE,121)) > 1

由于 SQL 强制我在 GROUP BY 语句中使用“convert(nvarchar(16),TRANS_DATE,121)”,所以我无法获取重复值。

有什么想法吗?

提前致谢。

最佳答案

如果您想要复制实际的,请改用窗口函数:

SELECT  th.*, convert(nvarchar(16),TRANS_DATE,121)
FROM (SELECT th.*, COUNT(*) OVER (PARTITION BY convert(nvarchar(16),TRANS_DATE,121)) as cnt
      FROM TRANSACTION_HEADER th
      WHERE TRANS_DATE BETWEEN '11.01.2015' AND '12.01.2015' 
     ) th
WHERE cnt > 1;

关于sql - 如何在 SQL Server 中获取 datetime 重复行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27903047/

相关文章:

Java - 以分钟为单位计算差异

mysql - 类似服务数据库的组织方式

php - 如何多次获取特定字段值..我的输出来自两个不同的表通过 INNER JOIN

mysql - 我可以在mysql数据库中获取最高数量的值吗?

mysql - 合并两个表的输出具有相同的结构

sql - SQL Server Money 数据类型需要更高的精度

PHP/MYSQL 更新查询不工作

sql - 何时使用第五范式(5NF)?

sql - 将列表汇总为逗号分隔的字符串

sql - 在 VBA 中使用 SQL 连接两个 Excel 工作簿中的数据(只读错误)