MySQL数据库中的日期时间类型

6

我在我的数据库(MYSQL)中有一个datetime类型的字段(格式为2011-05-18 16:29:31),但我不知道这个类型!因为我需要将一个字符串转换为此类型。我已经找到了java.sql.Date和java.sql.Timestamp,但没有datetime!


1
你为什么认为java.sql.*库和MYSQL应该具有相同名称的数据类型? - triclosan
我不知道我是否假定了。 - rym
4个回答

11

MySQL中的datetimejava.sql.Timestamp对应,它们都是“日期加时间”。

要将字符串转换为日期,请使用以下代码:

java.util.Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2011-05-18 16:29:31");
java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());

我已经将我的日期转换为所需的格式,但是现在我想将它转换为java.util.Timestamp,我该怎么做呢? DateFormat out = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString=out.format(date1); - rym
重要提示:由于时间戳从1970年01月01日开始,它不是DATETIME数据类型的精确匹配类型。如果您的情况是如此,例如如果您将出生日期保存在该列中,则将无法使用它。 - Suphi ÇEVİKER

0
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Calendar c=Calendar.getInstance();
    try {
        c.setTime(format.parse("2013-12-10 05:15:00"));
    } catch (Exception e) {

    }

    System.out.println(c.get(Calendar.HOUR_OF_DAY)+"h"+c.get(Calendar.MINUTE)+" Date "+c.get(Calendar.DATE));

使用java.util.Date时出现了一些问题,但是当我使用日历时它完美地工作。


0

将日期转换为时间戳,请执行以下操作:

    Date now = new Date();
    Timestamp timestamp = new Timestamp(now.getTime());

请参考javadocs以获取更多信息


重要提示:由于时间戳始于1970年01月01日,它与DATETIME并非完全匹配的类型。如果您的情况是如此,例如您将出生日期保存在该列中,那么您将无法使用它。 - Suphi ÇEVİKER

0
Date date= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2020-04-21 00:00:00");
java.sql.Timestamp GDDatetimestamp = new java.sql.Timestamp(date.getTime());

步骤1 -> 创建两个模型类,一个包含String类型的日期,另一个包含Timestamp类型的日期。步骤2 -> 初始化一个Date类型的变量,并将String日期类型对象转换为Date类型,并使用SimpleFormat格式化为"yyyy-MM-dd HH:mm:ss"。步骤3 -> 将java.sql.Timestamp类型变量初始化为Date类型变量.getTime()。步骤4 -> 将java.sql.Timestamp类型变量设置为包含Timestamp模型类对象的类。步骤5 -> 在发送到dao层时,请确保日期参数的jdbctype为DATE类型。


5
请在您的回答中添加一些解释,以便其他人可以从中学习。 - Nico Haase
目的是在保存时将日期转换为时间戳格式。我有一个模型类,其中TestDate是String类型,我将String转换为TimeStamp。如何将String转换为TimeStamp?所以我有一个对象,它具有String类型的TestDate,我只需要一个Date类型的变量,因此我通过Date testdate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(entity.TestDate()); 将String TestDate转换为Date字段,然后将日期转换为时间戳,java.sql.Timestamp Datetimestamp = new java.sql.Timestamp(testdate.getTime()); - Koyel Sharma
请在您的答案中添加所有解释。 - Nico Haase
步骤 1 -> 创建两个模型类,一个类包含 String 类型的日期,另一个类包含 Timestamp 类型的日期。 步骤 2 -> 初始化 Date 类型变量并将 String 类型的日期对象转换为 Date,并使用 SimpleFormat 格式化为 "yyyy-MM-dd HH:mm:ss"。 步骤 3 -> 将 java.sql.Timestamp 类型变量初始化为 Date 类型变量.getTime()。 步骤 4 -> 将 java.sql.Timestamp 类型变量设置为包含 Timestamp 模型类对象的类。 步骤 5 -> 在发送到 dao 层时,请确保日期参数的 jdbctype 是 DATE 类型。 - Koyel Sharma
请将您的答案中的所有解释都添加到其中,通过编辑它来完成 - 不要使用评论部分 - Nico Haase
重要提示:由于时间戳从1970年01月01日开始,它并不是DATETIME类型的精确匹配方式。如果您的情况是这样的,例如您在该列中保存的是出生日期,那么您将无法使用它。 - Suphi ÇEVİKER

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接