【发布时间】:2024-01-11 21:06:01
【问题描述】:
我有以下情况。样本数据:
| OCTeamID (int) | OCTeamLastTime (datetime) |
|---|---|
| 1 | 1970-01-01 00:00:00 |
| 2 | 2022-01-21 00:37:23 |
| 3 | 1970-01-01 00:00:00 |
| 4 | 2022-01-21 00:37:23 |
| 5 | 1970-01-01 00:00:00 |
我正在尝试的是以下内容:
当OCTeamLastTime 列行中的日期时间值高于当前日期时间CURRENT_TIMESTAMP 时,我希望SQL 变量为Now,否则使用OCTeamLastTime 中的值作为CanDoOC。
我目前正在尝试以下语句。但这给了我现在每个结果的结果。
SELECT OCTeamName, OCTeamID, OCTeamLastTime, (
CASE WHEN(SELECT COUNT(OCTeamID) FROM OCTable WHERE OCTeamLastTime >= CURRENT_TIMESTAMP AND OCTeamID = OCTeamID) > 0 THEN 'Now' ELSE OCTeamLastTime END
) AS CanDoOC
FROM OCTable
我想在 php/html 的选项列表中使用这些结果。基于上表的预期结果:
<option data-subtext="Next OC: <?php echo $SelectOCTeam['CanDoOC']; ?>" value="<?php echo $SelectOCTeam['OCTeamID']; ?>"><?php echo $SelectOCTeam['OCTeamName']; ?></option>
在这种情况下,它应该创建 5 个选项。使用 Next OC:现在对于 ID 为 1,3 和 5 的团队以及其他选项的 OCTeamLastTime 值。
有谁可以做到这一点?因为我所做的没有工作,我想不出任何其他方法来完成这项工作。
【问题讨论】: