【问题标题】:hibernate - retrieving and saving date in mysql database in format I wanthibernate - 以我想要的格式在 mysql 数据库中检索和保存日期
【发布时间】:2015-04-23 19:25:33
【问题描述】:

我以这种方式使用休眠将数据存储在 MySQL 数据库中。

@Column(name="CREATION_DATE")
private Date creation_date;

我正在使用 dd-mm-yyyy 格式输入日期:

    String str_date = request.getParameter("document_date");
    DateFormat df = new SimpleDateFormat("dd-mm-yyyy");
    Date date = null;
    try {
        date = df.parse(str_date);
    } catch (ParseException e1) {
        System.out.println("Exception occurred in parsing date : "+e1);
    }

但是当日期进入数据库时​​,它的格式完全不同:例如。如果输入的日期是 22/2/2015,则存储的日期是 0022-01-03。即使我使用了 TemporalType.DATE,我也无法阻止时间保存在数据库中。请帮忙,因为这占用了我太多时间!

【问题讨论】:

    标签: java mysql hibernate date servlets


    【解决方案1】:

    来自 Mysql 文档:- Date format

    DATE 类型用于具有日期部分但没有时间部分的值。 MySQL 以 'YYYY-MM-DD' 格式检索和显示 DATE 值。这 支持的范围是 '1000-01-01' 到 '9999-12-31'

    如果您还想将时间存储在数据库中,请定义您的 creation_date 变量,如下所示。您将不得不使用 TIMESTAMP

    @Column(name="CREATION_DATE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date creation_date;
    

    【讨论】:

    • 谢谢,但我不想存储时间,所以我使用 TemporalType.DATE,但这无济于事,但仍将时间保存为 00:00:00:0
    • 你能检查你的数据库模式吗,显示创建表 ;它为列显示了什么?
    • 你能把它改成简单的日期类型而不是日期时间类型吗?
    • 我不知道:P 我可以吗??
    • ALTER TABLE 表名修改列名日期;
    猜你喜欢
    • 2015-10-15
    • 2018-10-04
    • 2023-03-13
    • 2012-01-27
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多