MySQL 将多个日期列合并为一个

标签 mysql datetime merge concatenation

好吧,我有多个日期时间列,例如 date_created、last_login、last_updated 等...我想将它们合并到显示最新日期时间的一列中,以便我可以更轻松地跟踪 active_users。

我发现了一些使用 CONCAT 命令的建议,但这看起来只是将所有结果串在一起。

最佳答案

试试这个:

SELECT username, 
       GREATEST(date_created, last_login, last_updated) last_activity
FROM your_table
ORDER BY last_activity DESC

编辑:

SELECT username, 
       GREATEST(
           IFNULL(date_created, 0), 
           IFNULL(last_login, 0), 
           IFNULL(last_updated, 0) 
       last_activity
FROM your_table
ORDER BY last_activity DESC

再次编辑:
在您的数据库副本(有 27.451 条记录)上,我使用了:

SELECT id, 
       GREATEST(
           IFNULL(current_login_datetime, 0), 
           IFNULL(created_datetime, 0), 
           IFNULL(updated_datetime, 0)) 
       last_activity
FROM users
ORDER BY last_activity DESC

获得准确27.451条记录!!
为了证明这一点,请运行以下查询:

SELECT COUNT(*) FROM
(SELECT id, 
       GREATEST(
           IFNULL(current_login_datetime, 0), 
           IFNULL(created_datetime, 0), 
           IFNULL(updated_datetime, 0)) 
       last_activity
FROM users
ORDER BY last_activity DESC) der

并检查返回的数字是否与查询相同

SELECT COUNT(*) FROM users

您的问题可能源于返回或显示记录总数的限制。
例如,使用 Navicat light,您可以拥有 1000 条记录(但总共可以读取 27.451 条)。

关于MySQL 将多个日期列合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560840/

相关文章:

python - 合并具有非唯一索引的多个数据帧

Mysql - 慢查询输出

python - 合并在 Pandas 中返回空数据框

PHP 后期计算

c# - 使用属性将 YYYYMMDD 字符串转换为日期

python - 如果在列中,则无法减去日期时间和 NaT

使用 Log4Net 格式化日期时间

merge - 如何在 Enterprise Architect 中合并 EAP 文件

php - 包含数据库连接错误的 php 文件

mysql - 对于可变数量的组合,最佳的表结构是什么?