精华内容
下载资源
问答
  • oracle数据库date类型,但是没有datetime类型mysql数据库既有date类型也有datetime类型。Oracle数据库date类型和mysql的date类型是不一样的,Oracle的date类型为YYYY-MM-DD hh:mm:ss和mysql中的datetime类型匹配...

    oracle数据库有date类型,但是没有datetime类型

    mysql数据库既有date类型也有datetime类型。 Oracle数据库的date类型和mysql的date类型是不一样的,Oracle的date类型为YYYY-MM-DD hh:mm:ss和mysql中的datetime类型匹配, 而 mysql 的date类型为 yyyy-mm-dd。

    关于date和datetime的用法,就要看你想要存储时间的精确值了,如果仅仅是想要精确到天的话使用date就可以了,如要要精确到秒一级别的就要使用datetime了。有时候大家使用datetime的使用却只是存储到天的日期单位时,这个时候就会自动添加00:00:00在数据的后面,作为秒一级别的数据。

    如果表中的字段是Date类型,插入或查询时需要将字符串类型转换成Date类型,TO_DATE( '2020-07-01 12:30:11', 'yyyy-mm-dd hh24:mi:ss' )或to_date('2010-01-01','yyyy-mm-dd')

    SELECT

    ID,

    STAT_DATE,

    TOTAL_SCAN_PEOPLE_NUM,

    TOTAL_FOLW_NUM,

    TOTAL_LOSS_NUM,

    RETAIN_NUM,

    SCAN_NUM,

    SCAN_PEOPLE_NUM,

    FOLW_NUM,

    LOSS_NUM,

    NET_GROWTH_NUM,

    STAT_ID

    FROM

    T_OFFICIAL_ACCOUT

    WHERE

    (

    STAT_DATE BETWEEN TO_DATE('2020-11-02 00:00:00', 'yyyy-mm-dd hh24:mi:ss')

    AND TO_DATE('2020-11-05 23:59:59', 'yyyy-mm-dd hh24:mi:ss') )

    ORDER BY

    STAT_DATE ASC;

    另外:如果表中有主键,并且已经存在序列,则在插入时,写上ID字段,值用序列的下一个值即可,即CR_TRACEABILITY_SEQ.nextval。

    Oracle数据库不能进行批量插入,即不能一条SQL插入多条记录。

    展开全文
  • JDBC操作数据库Date类型数据由于java原生的工具类java.util提供的Date对象与JDBC提供的Date对象并不相同分别是java.util.Date和java.sql.Datejava.sql.Date是java.util.Date的子类所以在进行增删改查部分操作中,不...

    JDBC操作数据库Date类型数据

    由于java原生的工具类java.util提供的Date对象与JDBC提供的Date对象并不相同

    分别是java.util.Date和java.sql.Date

    java.sql.Date是java.util.Date的子类

    所以在进行增删改查部分操作中,不能直接将原生工具类的Date对象直接运用到JDBC中

    可以将java.sql.Date直接转换成java.util.Date

    使用SimpleDateFormat转换

    SimpleDateFormat可以将字符串转换成Util.Date

    //字符串:自定义日期

    String str = "1999-09-09";

    //将字符串转换为Util.Date

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

    //parse方法转换

    java.util.Date date = simpleDateFormat.parse(str);

    System.out.println(date);

    也可以将Util.Date转换成字符串

    //将Date对象转换成字符串

    String dates = simpleDateFormat.format(new java.util.Date());

    System.out.println(dates); //2020-09-14

    将字符串类型的固定日期转换成sql.Date

    sql.Date 不支持字符串转换,只支持毫秒值创建

    通过util.Date拿到固定日期的毫秒值,再转换成sql.date

    //字符串:固定日期

    String str = "1999-09-09";

    //将字符串转换为Util.Date

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

    //parse方法转换

    java.util.Date date = simpleDateFormat.parse(str);

    System.out.println(date);

    //通过util.Date拿到指定日期的毫秒值,再转换成sql.Date

    java.sql.Date sqlDate = new java.sql.Date(date.getTime());

    System.out.println(sqlDate);

    将日期转换封装成工具类

    package com.qf.Person;

    import java.text.ParseException;

    import java.text.SimpleDateFormat;

    public class DateUtils {

    //1. 字符串转换成util.Date

    public static java.util.Date strToUtil(String str) {

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

    try {

    java.util.Date date = simpleDateFormat.parse(str);

    return date;

    } catch (ParseException e) {

    e.printStackTrace();

    }

    return null;

    }

    //2. util.Date 转换成sql.Date

    public static java.sql.Date utilToSql(java.util.Date date) {

    return new java.sql.Date(date.getTime());

    }

    //3. util.Date转换成字符串形式

    public static String utilToStr(java.util.Date date) {

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

    return simpleDateFormat.format(date);

    }

    }

    展开全文
  • 字符串存入数据库date类型字段

    万次阅读 2017-07-25 16:39:33
    string字符串存入数据库date类型字段中, 直接插入会抛异常ORA-01861: 文字与格式字符串不匹配, 可以采用三种方法: 1、使用注解: 2、使用Java将代表日期的字符串转换为java.util.date再插入数据库 3、使用数据库...

    有时候为了计算方便等原因需要将时间以date格式存入数据库,但是前台传过来的数据类型都是字符串,如果将字符串直接插入date类型的字段中会抛:ORA-01861: 文字与格式字符串不匹配

    前台页面有一个表单,如下所示:

    <form action="......" method="get">
        <input type="date" name="date">
        <input type="submit" value="提交">
    </form>

    提交表单时传到后台只是选定日期对应的字符串表示形式:
    如选定:


    这里写图片描述

    由浏览提地址栏可知传到后台只是字符串的”2017-07-25”,

    http://localhost:8080/....../save.do?date=2017-07-25

    这样直接保存到数据库中就会抛如下异常:

    org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [INSERT INTO DEMO (DATATEST) VALUES  (?)]; ORA-01861: 文字与格式字符串不匹配
    ; nested exception is java.sql.SQLDataException: ORA-01861: 文字与格式字符串不匹配

    数据库结构如下:
    这里写图片描述


    解决办法:

    1、使用注解:

    @DateTimeFormat
    @JsonFormat

    在实体类代表日期字段的get方法上添加注解:

    import com.fasterxml.jackson.annotation.JsonFormat;
    import org.springframework.format.annotation.DateTimeFormat;
    
    import java.util.Date;
    
    public class DateModel {
        private Date date;
    
        @DateTimeFormat(pattern = "yyyy-MM-dd")
        @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
        public Date getDate() {
            return date;
        }
    
        public void setDate(Date date) {
            this.date = date;
        }
    
        @Override
        public String toString() {
            return "DateModel{" +
                    "date='" + date + '\'' +
                    '}';
        }
    }

    dao层:(此处使用jdbctemplate)

    import com.srie.ylb.model.DateModel;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
    import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
    import org.springframework.jdbc.core.namedparam.SqlParameterSource;
    import org.springframework.stereotype.Repository;
    
    @Repository
    public class DateDao {
    
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        public void saveDate(DateModel dateModel) {
            String sql = "INSERT INTO DEMO (DATATEST) VALUES  (:date)";
            NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
            SqlParameterSource sqlParameterSource = new BeanPropertySqlParameterSource(dateModel);
            namedParameterJdbcTemplate.update(sql, sqlParameterSource);
        }
    }

    2、使用Java将代表日期的字符串转换为java.util.date再插入数据库

    使用SimpleDateFormat:

    @RequestMapping("/save")
    public void saveDate(String dateStr) throws ParseException {
        Date date = new SimpleDateFormat("yyyy-MM-dd").parse(dateStr);
       dateDao.saveDate(date);
    }

    也可使用java.util.Calendar,只不过麻烦些。

    dao层:

    public void saveDate(Date date) {
        String sql = "INSERT INTO DEMO (DATATEST) VALUES  (?)";
        jdbcTemplate.update(sql, date);
    }

    3、使用数据库函数TO_CHAR()函数

    dao层:

    public void saveDate(String date) {
        String sql = "INSERT INTO DEMO (DATATEST) VALUES (TO_DATE(?, 'yyyy-MM-dd'))";
        jdbcTemplate.update(sql, date);
    }

    测试结果:


    这里写图片描述

    展开全文
  • JAVA String时间转化为数据库Date类型

    千次阅读 2017-01-12 20:57:07
    JAVA String时间转化为数据库Date类型

    JAVA String时间转化为数据库Date类型

    String date="2017-01-12 18:00:00";
    java.text.SimpleDateFormat formatter =
                 new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
    Date Time=formatter.parse(date);

    这样转化的时间直接可以插入Mysql数据库,以及查询的时候可以简单通过String转换,当然,如果不想要时分秒,也可以这样写:

    String date="2017-01-12";
    java.text.SimpleDateFormat formatter =
                 new SimpleDateFormat( "yyyy-MM-dd");
    Date Time=formatter.parse(date);

    以前查过好多,因为要用到数据库查询语句selece * from 表名 where 时间字段 between time1 and time2,time1和time2我想通过自己设置值,将 JAVA String类型转换为Date,但是查阅了网上好多都是下面这样写的:

    String date="2012-12-23 12:00:00";
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
    Date Time=sdf.parse(date);

    但是试过单体测试还是报错,尝试了好多,才知道这个成功的例子,希望可以帮助到大家,另外,如果有高手知道上面的代码如何改正就可以正确查询还望指教~

    展开全文
  • 浅谈Oracle数据库Date类型查询问题 用过Oracle数据库的朋友应该知道,Oracle数据库在以Date类型为查询条件时存在一个小小的BUG,如: select * from tableName where createDate >= to_dat...
  • APICloud 数据库Date类型

    2020-07-25 02:28:19
    数据库中上传Date类型的值时,用字符串拼接的即可: dateValue = ret.year + "-" + ret.month + "-" + ret.day + " " + ret.hour + ":" + ret.minute; 如果上传的值为new Date()类型时会报错。
  • 新的一年愿贪吃不胖 开门见山,对于oracle date类型,无论是oracle开发人员还是DBA都不陌生,今天我们要聊的主题是date类型在oracle数据库中的重要性,以及相关PL/SQL代码应该如何检索日期类型的相关命题。...
  • 1.使用Date类和TimeStamp类的valueOf转换时间Date.valueOf();TimeStamp.valueOf();如果这两种转换直接用在sal语句上,那么最外层要加双引号或单引号的;...2、在数据库中插入时间PreparedStatement ps = con.prepar...
  • 问题: java.lang.ClassCastException : java.util.Date cannot be cast to ...1.若是想将字符串装换成sql.date类型 Stringstr="1989-11-2312:25:20"; java.sql.Datedate=java.sql.Date.valueof(str); s...
  • entity ...private Date outime; vo private String outime; impl vo.setOutime(DateUtils.getDateFormat(entity.getOutime(), "yyyy-MM-dd HH:mm:ss")); argument type...
  • 导出excel显示Thu Jul 21 16:11:13 CST 2016 现在用list for循环得到时间的值(Date类型),然后转换为"yyyy-MM-dd HH:mm:ss" 再将值赋予它,应该怎么做。或者在excel页面直接将单元格设置成"yyyy-MM-dd HH:mm:ss
  • 持久层框架是 mybatis,数据库是oracle; 在本地 测试毫无问题,部署到服务器上时: 取当前时间set 的 时候报错java.lang.NoSuchMethodError: ...
  • 发现date类型是可以正常匹配的,这是因为如果用datetime类型匹配如果不将日期填写到秒钟mysql将会自动填充剩余的数据为00:00:00,并且只对这个时间进行判断所以datetime=2017-11-01 13:52:26时候用2017-11-01去查询...
  • Oracle数据库date类型

    2013-11-11 10:35:56
    INSERT INTO TABLE_NAME ODATETIME VALUES(to_date('2013-10-23 21:12:22', 'yyyy-mm-dd hh24-mi-ss')); 查询记录: SELECT to_char(ODATETIME, 'yyyy-mm-dd hh24:mi:ss') odatetime FROM TABLE_NAME;
  • 在yml文件中加入如下配置 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 注:返回时,能后直接把数据库date类型数据转换成long型时间戳给前端
  • 问题描述:在SQL Server数据库中使用Date类型的字段存放不带时间的日期yyyy-MM-dd,在使用Java读取时间时发现读取回来的字段日期值自动减少了两天。 解决方法是将date类型改成datetime类型

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,833
精华内容 2,733
关键字:

数据库date类型