mysql中将datetime转换为int格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中将datetime转换为int格式相关的知识,希望对你有一定的参考价值。

我现在有一个数据表,想把里面的 datetime (2012-07-08 11:33:07) 字段 里面的全部数据 ,转换成int(1396244325) 这种格式,
求大神写一句 sql 语句。

参考技术A 转换成时间戳格式的。mysql中用这个UNIX_TIMESTAMP可以把时间格式的转换成时间戳。 参考技术B Select UNIX_TIMESTAMP('2012-07-08 11:33:07′);

在 JAVA 中将 Json dateTime 转换为字符串

【中文标题】在 JAVA 中将 Json dateTime 转换为字符串【英文标题】:Convert Json dateTime to String in JAVA 【发布时间】:2016-06-25 09:55:13 【问题描述】:

我有: CreatedTime 时间戳, 更新时间时间戳, 状态 Varchar, AutoID 列

在 mysql 中。通过我的服务,我得到了以下 json 格式。

 
        "CreatedTime": "\/Date(1457646424000)\/",
        "UpdatedTime": "\/Date(1457647761000)\/",
        "Status": "Open",
        "AutoID": 1
 

我正在尝试如下转换 CreatedTime 和 UpdatedTime:

public String ConvertJsonDateTime(String jsondate)

    if (jsondate != "" && !jsondate.equals("") && jsondate != null && jsondate != "null") 
        jsondate = jsondate.replace("/Date(", "").replace(")/", "");
        long time = Long.parseLong(jsondate);
        Date d = new Date(time);
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d).toString();
     else 
        return "";
    

但是它返回了错误的细节。例如在表中 CreatedTime2016-03-10 14:47:04 但函数 ConvertJsonDateTime 返回为 2016-03-11 03:17:04。我该如何解决这个问题?

【问题讨论】:

可能你必须为你的SimpleDateFormat设置正确的TimeZone jsondate!="" -> 永远不要在 Java 中使用 ==!= 比较字符串:***.com/questions/513832/… 并将 jsondate!=null 放在表达式的最左侧:如果它为空,!jsondate.equals("")将抛出一个 NPE 【参考方案1】:

您需要设置正确的时区

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT")); // GMT or any timezone

另外,正如 Bart 所说,你永远不要使用 ==!= 比较字符串,总是使用 equals()

【讨论】:

以上是关于mysql中将datetime转换为int格式的主要内容,如果未能解决你的问题,请参考以下文章

在 Informix 中将 DATETIME 转换为 Unix 纪元

在查询中将 DateTime.Ticks 转换为 MySQL DateTime

在 JAVA 中将 Json dateTime 转换为字符串

在 c# 中将时间字符串转换为不同的 DateTime 格式 [关闭]

sqlserver中将datetime类型转换为yyyyMMddHHmmss格式

如何在 Pandas 数据框中将日期转换为 ISO-8601 DateTime 格式