mysql - 在 SQL 中将负整数转换为 DATE

标签 mysql sql casting navicat

我在使用 Navicat 数据库时遇到问题。我在 SQL 中有一个名为 fechaNacimiento(出生日期)的列,它应该是日期类型,但它存储为整数(大多数负整数):

SELECT fechaNacimiento FROM Registrados

我得到:

fechaNacimiento
-1451678400
-2082829392
-1798746192
-1199221200
-1356984000
-694299600
-1483214400
-1924976592
-1830368592
-2019670992
-1678909392
239252400
1451617200
-879541200        

我不知道这个日期是如何加载的,我只知道在那个负整数里面有一个日期,这里没有人知道如何拼写 SQL,所以我没有人要问。如果我只是将其转换为 DATETIME,我会将它们全部转换为 NULL 值。知道如何将此数据转换为日期类型吗?

最佳答案

这样的数字让我想起 Unix 时间,即自 1970 年以来的秒数。如果是这样,你也许可以这样做:

select dateadd(second, <column>, '1970-01-01')

这会将负值置于 1970 年之前的某个时间(例如,-1678909392 是 1916-10-19)。如果您有较旧的日期,那么这可能是正在使用的格式。

这些也可以表示为毫秒。如果是这样:

select dateadd(second, <column>/1000, '1970-01-01')

在本例中,-1678909392 代表 1969-12-12。

在 MySQL 中,您可以使用:

select '1970-01-01' + interval floor(column / 1000) second

关于mysql - 在 SQL 中将负整数转换为 DATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45636952/

相关文章:

jquery - 我想从 onkeyup 事件的数据库中检索信息,并使用 jquery 将其显示在文本框中

c++ - 如何摆脱空指针

MySQL从十进制转换为字符串

php - 创建一个foreach循环以在php变量中缓存html表单名称

php - 无法使用新的 MySQL 用户连接到 MySQL

MySQL 错误 1093 - 无法在 FROM 子句中指定要更新的目标表

php - 在 PHP/MySQL 中隐藏过去的事情

php - 获取与其他用户的所有对话之间的最新消息

php - SQLSTATE[42S22] : Column not found: 1054 Unknown column - Laravel

c# - 将一个对象转换为另一种类型