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/

相关文章:

sql - BigQuery,将字符串转换为数组

sql-server - 添加到主键而不删除外键引用

c# - 涉及 EntityFramework/SQL Server 和 NServiceBus/MSMQ 的分布式事务中的非同时提交

面向不同地域用户的日期操作/存储的 Java 最佳实践

php - 具有条件偏好的mysql SELECT

sql - 如何使用 "from"的 "select"子句中的参数动态生成数据集

php - 如何使用连接获取相同值行的单独计数

c# - EF Core 3,优化大量Include/ThenInclude

java - 使用 Liquibase 从现有数据库(包括存储过程)创建数据库变更日志 xml 文件

MySQL 根据另一列的相似性从一列中生成一对值