【发布时间】:2021-06-10 11:16:40
【问题描述】:
我有一个带有“事件”表的 mysql 数据库。 我通过以下方式获取所有数据:
SELECT * FROM `events`
有一列“start”具有此值(示例)
20210501T180000
定义:
YYYYMMDDTHHIISS
现在我想获取日期“开始”与今天的差异为
例如:
start = 20211005T180000
today = 20211006T100000
=> -1 day difference
时间不应该是一个因素。
【问题讨论】:
-
您的专栏为什么不使用
date或datetime类型?那么比较将只是与 now() 进行比较的情况 -
不适合我的情况
-
真的吗?我从未遇到过将日期存储为字符串的用例。你认为你得到了什么?因为你失去了很多。这些类型的存在是有充分理由的。
-
@Adyson 这可能只是出于遗留原因,在一个已经开发了十多年并且具有足够的依赖性以至于 OP 无法更改的项目中 - 这个问题仍然有一个直接的答案。
-
@nos 也许,也许不是。如果这是一项新工作,那么从长远来看,改用 datetime 列会比进行字符串比较更好,也更有效。这就是为什么我问 OP 的原因。