【Java数据库】SQL时间类型Date Time Timestamp区别、插入/取出指定时间段的数据
生活随笔
收集整理的這篇文章主要介紹了
【Java数据库】SQL时间类型Date Time Timestamp区别、插入/取出指定时间段的数据
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
java.util.Date
子類:java.sql.Date 表示年月日
子類:java.sql.Time 表示時(shí)分秒
子類:java.sql.Timestamp 表示年月日 時(shí)分秒
1970.01.01 long類型的 毫秒表示,1970之前是負(fù)數(shù),1970之后是正數(shù)。
向數(shù)據(jù)庫(kù)表中添加一個(gè)TIMESTAMP類型的列
alter table user add lastlogintime TIMESTAMP;使用Java向數(shù)據(jù)庫(kù)中插入含有隨機(jī)時(shí)間的記錄(精確到秒)
package cn.hanquan.jdbcTest;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Timestamp; import java.util.Random;public class JDBCTest {public static void main(String[] args) throws SQLException {Connection conn = null;PreparedStatement ps = null;try {// 加載驅(qū)動(dòng)類Class.forName("com.mysql.cj.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc?serverTimezone=UTC", "root","123456");for (int i = 0; i < 300; i++) {ps = conn.prepareStatement("insert into user (id,pwd,phone,date,lastlogintime) values (?,?,?,?,?)");ps.setObject(1, "高淇" + i);ps.setObject(2, "123456");int rand = 100000000 + new Random().nextInt(1000000000);java.sql.Date date = new java.sql.Date(System.currentTimeMillis() - rand);Timestamp stamp = new Timestamp(System.currentTimeMillis() - rand); // 如果需要插入指定日期,可以使用Calendar、DateFormatps.setObject(3, 100000);ps.setDate(4, date);ps.setTimestamp(5, stamp);ps.execute();System.out.println("插入" + i + "個(gè)用戶,高淇");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {try {if (ps != null) {ps.close();}} catch (SQLException e) {e.printStackTrace();}try {if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();}}} }執(zhí)行結(jié)果
取出指定時(shí)間段的數(shù)據(jù)
package cn.hanquan.jdbcTest;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class JDBCTest {// 將字符串代表的日期轉(zhuǎn)為long數(shù)字 yyyy-MM-dd hh:mm:sspublic static long str2LongDate(String dateStr) {DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");try {return format.parse(dateStr).getTime();} catch (ParseException e) {e.printStackTrace();}return 0;}public static void main(String[] args) throws SQLException {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {// 加載驅(qū)動(dòng)類Class.forName("com.mysql.cj.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc?serverTimezone=UTC", "root","123456");String sql = "select * from user where lastlogintime > ? and lastlogintime < ?";ps = conn.prepareStatement(sql);java.sql.Date startTime = new java.sql.Date(str2LongDate("2019-08-10 00:00:00"));java.sql.Date endTime = new java.sql.Date(str2LongDate("2019-08-11 00:00:00"));ps.setObject(1, startTime);ps.setObject(2, endTime);rs=ps.executeQuery();while(rs.next()) {System.out.print(rs.getObject(1) + "\t");// 取出第1列System.out.print(rs.getObject(2) + "\t");// 取出第2列System.out.print(rs.getObject(3) + "\t");System.out.print(rs.getObject(3) + "\t");System.out.println(rs.getObject(5) + "\t ");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} finally {try {if (ps != null) {ps.close();}} catch (SQLException e) {e.printStackTrace();}try {if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();}}} } 超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的【Java数据库】SQL时间类型Date Time Timestamp区别、插入/取出指定时间段的数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Java数据库】使用JDBC操作MyS
- 下一篇: java美元兑换,(Java实现) 美元