关于数据库日期操作的杂七杂八【格式化、互转、比较】

简介: 1、java String与Date类型之间的相互转换package test;import java.text.DateFormat;import java.

1、java String与Date类型之间的相互转换

package test;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
public class StringOrDate {
     public static String dateToString(Date date, String type) {
         String str = null ;
         DateFormat format = new SimpleDateFormat( "yyyy-MM-dd" );
         if (type.equals( "SHORT" )) {
             // 07-1-18
             format = DateFormat.getDateInstance(DateFormat.SHORT);
             str = format.format(date);
         } else if (type.equals( "MEDIUM" )) {
             // 2007-1-18
             format = DateFormat.getDateInstance(DateFormat.MEDIUM);
             str = format.format(date);
         } else if (type.equals( "FULL" )) {
             // 2007年1月18日 星期四
             format = DateFormat.getDateInstance(DateFormat.FULL);
             str = format.format(date);
         }
         return str;
     }
     public static Date stringToDate(String str) {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
            // Fri Feb 24 00:00:00 CST 2012
            date = format.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
//以上这种转出来不能直接参与和数据库date的比较
        // 2012-02-24
        date = java.sql.Date.valueOf(str);
                                             
        return date;
    }
     public static void main(String[] args) {
         Date date = new Date();
         System.out.println(StringOrDate.dateToString(date, "MEDIUM" ));
         String str = "2012-2-24" ;
         System.out.println(StringOrDate.stringToDate(str));
     }
}


2、java.sql.Date.valueOf和java.sql.Timestamp.valueOf


要说明的是如果采用的是

java.sql.Date.valueOf,

比较的时候,如2012-05-09如果存在数据库的是datetiime会有2012-05-09 00:00:00以后的都不会被查询出来就是当天的查询不出来。

要实现能查询出来则要使用

java.sql.Timestamp.valueOf

在开始时间写撑yyyy-mm-dd 00:00:00 截至时间写成yyyy-mm-dd 23:59:59就能查询到当天的了


3、关于日期比较

如果一个时间段好像用.>/<=。时间区间貌似就不行了。


时间区间的话在sql中用between记得时间要加引号

在hql中的话setDate记得里面的date用的是java.sql.date火车java.sql.timestamp



格式化Hibernate的SQL输出语句
今天在网上看到这么一段,很实用:

如果想要仔细看Hibernate生成的SQL语句,将format_sql设为true可以很大程度地减轻痛苦……
hibernate.format_sql = true

配置文件则加<property name="format_sql">true</property>
再加上这个的话:
hibernate.use_sql_comments = true
[可读性 + 可定位性]会更好
不过,这两个一起来的话也会造成SQL在console中显示的篇幅很大。

相关文章
|
6月前
|
存储 SQL 关系型数据库
OceanBase数据库并没有类似于传统关系型数据库中的"SET COL"这样的格式化命令
OceanBase数据库并没有类似于传统关系型数据库中的"SET COL"这样的格式化命令
57 1
|
6月前
|
存储 SQL 关系型数据库
OceanBase数据库并没有类似于传统关系型数据库中的"SET COL"这样的格式化命令
OceanBase数据库并没有类似于传统关系型数据库中的"SET COL"这样的格式化命令
88 1
|
数据库
LeetCode(数据库)- 重新格式化部门表
LeetCode(数据库)- 重新格式化部门表
106 0
|
SQL Oracle 关系型数据库
oracle数据库日期时间格式化及参数详解
  所谓格式化日期指的是将日期转为字符串,或将字符串转为日期,下面几个函数可以用来格式化日期。   TO_CHAR(datetime, 'format')   TO_DATE(character, 'format')   TO_TIMESTAMP(character, 'format')
1023 0
|
XML 存储 SQL
《懒人Shell脚本》之七——格式化处理数据存入数据库实现
0、引言 实际应用开发中遇到:将非格式化的文件数据存储到数据库中。对于传统的格式化的数据:ini/json/xml我们都有现成的类库去实现。而对于如下非格式化的数据呢?以下是我的思考与实现。
133 0
|
Shell 数据库 数据格式
《懒人Shell脚本》之七——格式化处理数据存入数据库实现
实际应用开发中遇到:将非格式化的文件数据存储到数据库中。对于传统的格式化的数据:ini/json/xml我们都有现成的类库去实现。而对于如下非格式化的数据呢?以下是我的思考与实现。
662 0
|
Java 数据库 Unix
把时间戳格式化存入数据库
把10位的时间戳以yyyy-MM-dd HH:mm:ss格式存入数据库 现在开发普遍是以时间戳作为时间的数据交互 首先在数据库表设计的时候,时间time的类型要为timestamp,默认为null 在实体类中,类型现在主要是使用包装类型基本类型:lon...
1375 0
|
5天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
35 2
|
21天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
104 0
|
21天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)

热门文章

最新文章