如何使用SQL在数据库中插入当前日期和时间?

时间:2010-07-28 07:54:01

标签: java sql

我使用了以下代码,但SQL中的DateTime字段表示为:

2005-04-08 00:00:00

我也想要时间。我应该改变什么?

以下是我的代码:

// Get the system date and time.
java.util.Date utilDate = new Date();
// Convert it to java.sql.Date
java.sql.Date date = new java.sql.Date(utilDate.getTime());
...
...
...
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setDate(1, date);

8 个答案:

答案 0 :(得分:11)

尝试使用 setTimestamp 而不是 setDate ,因为时间戳是数据时间的首选格式。

答案 1 :(得分:5)

您可以设置Timestamp import java.sql.Timestamp;

stmt.setTimestamp(1, new Timestamp(System.currentTimeMillis()));

而不是

stmt.setDate(1, date);

o / p将是:2014-05-16 08:34:52.977

将您的数据库 - 列设置为时间戳。

答案 2 :(得分:2)

试试这个:

Connection con;
Statement stmt;
con = DriverManager.getConnection(url, username, password);
stmt = con.createStatement();
stmt.executeUpdate("INSERT INTO MYTABLE(time) " +
"VALUES ('" + new java.sql.Date(System.CurrentTimeMillis())"');");

答案 3 :(得分:1)

立即使用sql函数()。

INSERT INTO table date_field VALUES(NOW());

答案 4 :(得分:1)

我不打算在Java中检索当前时间,只需让数据库完成工作:

package main

import "fmt"

type Talker interface {
    sayName() error
}

type Human struct {
    age  uint
    name string
}

func (h Human) sayName() error {
    fmt.Println("I am the Adult")
    return nil
}

type Child struct {
    Human
}

func Introduce(t Talker) error {
    t.sayName()
    return nil
}

func (c Child) sayName() error {
    fmt.Println("I am the Child")
    return nil
}

func main() {
    h := Human{}
    Introduce(h)

    c := Child{Human{}}
    Introduce(c)
}

答案 5 :(得分:0)

尝试使用setDate(utilDate)而不是尝试设置SQL日期。 在SQL中,日期和时间是不同的数据类型。

答案 6 :(得分:0)

我做了如下:

con = new BDConesion(); //Conexion with de DB
Connection cn = con.conexion()
PreparedStatement st = null;
st = cn.prepareStatement("INSERT INTO TABLE (Id,Fecha,contendido) VALUES(?,?,?)");
st.setString(1,String.valueOf(key)); //convert the int to string
st.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
st.setString(3,Cont);//Cont it is a varible string
st.executeUpdate();

我希望你服务

答案 7 :(得分:-1)

实际上,数据库中的日期是一个像“yyyy-mm-dd”这样的字符串。

为什么不尝试:

String date = "2010-07-28";

stmt.executeUpdate("INSERT INTO MYTABLE(time) " + s);

这只是你想要的日期。

如果您想立即插入,请使用如下命令:

INSERT INTO mytable(now());