主要写一些与数据库连接时的日期处理,pstmt.setDate()的类型是java.sql.Date类型,这种符合规范的类型其实并没有把时分秒存进数据库,所以存取时就应该用setTimestamp()或getTimestamp()。
整理一:
java.sql.Date 只存储日期数据不存储时间数据
// 会丢失时间数据
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));
//可以这样来处理
preparedStatement.setTimestamp(1, new Timestamp(new java.util.Date().getTime()));
//想要得到完整的数据,包括日期和时间,可以这样
java.util.Date d = resultSet.getTimestamp(1);
//这样处理更合适一些,可以避免一些潜在Timestamp 问题
java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());
往数据库存储的时候可以接收 java.util.Date类型 再用getTime()方法得到代表那个Date对象的long值,再以这个long值构造一个Timestamp对象 存进数据库中。
从存数据库里取的时候,可以先得到Timestamp用他的getTime()方法得到long值,再以这个long值构造一个 java.util.Date对象,这样就可以对这个Date对象操作了。比如说 new SimpleDateFormat("yyyyy-MM-dd HH:mm:ss").format(Date)或format(Timestamp)都行~
整理二:
用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式。
String转化为Timestamp:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//定义格式,不显示毫秒
Timestamp now = new Timestamp(System.currentTimeMillis());
//获取系统当前时间
String str = df.format(now);
String转化为Timestamp:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
String time = df.format(new Date());
Timestamp ts = Timestamp.valueOf(time);
整理三:
在 ResultSet中我们经常使用的setDate或getDate的数据类型是java.sql.Date,而在平时java程序中我们一般习惯使用 java.util.Date。因此在DAO层我们经常会碰到这俩种数据类型的相互转换。
两者的关系
java.lang.Object
|
+---java.util.Date
|
+----java.sql.Date
相互转换
1. 使用getTime()函数
这两个类都提供了getTime()函数,用于返回对应的毫秒数(long类型)。利用这个函数可以实现转换:
java.util.Date utilDate = new java.util.Date(sqlDate.getTime()); // sql -> util
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); // util -> sql
2. 使用SimpleDateFormat类实现转换
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。
SimpleDateFormat dateFormat = new SimpleDateFormate("yyyy-MM-dd HH:mm:ss");
java.util.Date utilDate = dateFormat.parse(sqlDate.toString());
3. 直接转换
由于java.sql.Date是从java.util.Date中继承过来的,所以可以直接用:
utilDate = sqlDate;
4. 另类获得日期的方法:
SimpleDateFormat sy=new SimpleDateFormat("yyyy");
SimpleDateFormat sm=new SimpleDateFormat("MM");
SimpleDateFormat sd=new SimpleDateFormat("dd");
String syear=sy.format(date);
String smon=sm.format(date);
String sday=sd.format(date);
ps:1. java.util.Date类中的getYear()要加上1900才可得到实际值,getMonth()则要加上1。
2. 字符串到Date的转换: Date.valueOf(str),记得引包的时候要引sql的Date包,不是util的Date包
3. 字符串到Timestamp 的转换Timestamp ts = Timestamp.valueOf(time);
分享到:
相关推荐
2. 数据类型:MySQL支持多种数据类型,如整数类型(TINYINT、INT、BIGINT)、浮点类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME、TIMESTAMP)等。 3. SQL语言...
不过,对于基础的日期比较,JavaScript内置的功能已经足够使用。 总之,正确地比较和处理时间日期是每个开发者必备的技能,而JavaScript为我们提供了丰富的工具来实现这一目标。通过理解并运用这些知识,我们可以更...
在Python编程语言中,时间处理是一项基础且重要的任务。它涉及到日期、时间和时间间隔的创建、比较、格式化以及各种操作。在这个主题中,我们将深入探讨Python中的时间比较及其相关概念,确保涵盖全面。 首先,...
总结来说,掌握MySQL基础知识和操作对于任何需要与数据库进行交互的开发人员或IT专业人员都至关重要。通过学习这些基础知识,他们可以有效地创建和管理数据库,执行复杂查询以及优化数据处理操作。
4. 日期和时间(Date and Time):如DATE、TIME、DATETIME、TIMESTAMP。 5. 布尔型(Boolean):BOOLEAN或TINYINT(1)表示。 三、SQL基础 1. SELECT语句:用于从数据库中查询数据,例如`SELECT * FROM table_name`。...
本资料“DB2 基础:日期和时间的使用”将深入探讨在DB2中处理日期和时间类型的关键概念和操作,这对于任何进行数据库操作的开发者或管理员来说都是至关重要的。 在DB2中,日期和时间数据类型用于存储和操作各种时间...
通过掌握上述知识点,您可以更加灵活和准确地使用PHP来比较两个绝对时间的大小。在实际开发中,妥善处理时间相关的逻辑不仅有助于避免程序错误,同时也能提升程序的用户体验和数据处理的准确性。
根据提供的文件信息,我们可以深入探讨以下几个关键的知识点: ### 数据类型 在数据库系统中,数据类型是用来定义数据字段能够存储的特定类型的数据。...希望这些内容能帮助您更好地理解和掌握DB存储过程的基础知识。
例如,CHAR和VARCHAR分别用于存储定长和变长的字符串,SMALLINT、INTEGER和REAL表示不同大小的整数和浮点数,DECIMAL允许存储精确的小数,DATE、TIME和TIMESTAMP用于日期和时间的记录。 在创建表时,可以指定列的...
SQL Server 2008 SSIS 基础文档 SSIS 使用手册 本文档是 SQL Server 2008 SSIS 的基础文档,共 167 页,涵盖了 SSIS 的...本文档提供了 SSIS 的基础知识和应用实例,旨在帮助读者快速了解 SSIS 的使用方法和应用场景。
Oracle 数据库基础知识点汇总 Oracle 数据库中有多种数据类型,包括 Character 数据类型、Long 数据类型、Varchar2 数据类型、Raw 和 Long Raw 数据类型、LOB 数据类型、Date 数据类型等。 1. Character 数据类型...
了解并熟练掌握这些Oracle数据库的基础知识,对于数据库管理员、开发人员和数据分析师来说都是至关重要的,能够有效地设计、管理和操作数据库,确保数据的准确性和可靠性。在实际工作中,根据需求选择合适的数据类型...
5. **按文件创建时间排序**:文件的创建时间通常是一个时间戳,可以将其转换为日期对象进行比较。在Python中,可以使用`datetime.fromtimestamp()`将时间戳转换为`datetime`对象,然后使用`sorted()`函数,结合...
MySQL 优化及基础面试题涉及的关键知识点主要包括慢查询日志、数据类型的选择、锁机制、事务处理以及数据库设计规范。 1. **慢查询日志**: - 慢查询日志是MySQL的一种功能,用于记录执行时间超过`long_query_time...
本主题将深入探讨SQL Server 2005的基础知识及其在数据库类应用中的核心概念。 一、SQL Server 2005概述 SQL Server 2005在功能上进行了大幅度增强,提供了更高效的数据存储、检索和管理能力。它支持多种数据类型,...
Oracle数据库是企业级关系型数据库...以上内容涵盖了Oracle数据库的基础知识,包括SQL语法、数据类型、伪列、命名规则、表空间管理、用户管理和权限控制等方面,这些都是Oracle数据库管理员和开发人员必备的知识点。
总的来说,C++实现日志文件写入涉及到文件操作、时间处理、字符串格式化等基础知识。通过这个项目,你可以深入了解这些概念,并提升你的C++编程技能。在使用Visual Studio 2010进行开发时,可以充分利用其IDE特性,...
总结来说,MySQL应用手册是开发者和数据库管理员的重要参考资料,涵盖了从基础概念到高级特性的全面知识,对于学习和使用MySQL的人来说是一份宝贵的资源。通过深入理解和实践手册中的内容,能够有效地设计、维护和...
### NTP校时源码分析 #### 一、概述 NTP(Network Time Protocol,网络...此外,对于NTP协议的理解和掌握也是实现高效稳定时间同步服务的基础。希望本文档能够帮助读者更好地理解NTP校时源码的工作原理及其应用实践。
了解数据库的分类、操作命令和基本知识是构建高效、稳定和可扩展应用程序的基础。随着技术的发展,数据库系统不断进化,为了满足不同的需求,开发者可以根据实际应用场景选择合适的数据库系统,并掌握相关的操作技能...