关闭

类 java.sql.Timestamp

标签: jdbcequalsmysqlstringdateinsert
5372人阅读 评论(0) 收藏 举报
分类:

类 java.sql.Timestamp

java.lang.Object
   |
   +----java.util.Date
           |
           +----java.sql.Timestamp

public class Timestamp
extends Date

该类是 java.util.Date 瘦包装器,它允许 JDBC 把该类作为 SQL TIMESTAMP 值识别。 它添加了用以维持 SQL TIMESTAMP 纳秒值的能力并提供格式化和分析操作以支持用于 timestamp 值的 JDBC 换码语法。

注意: 该类型是 java.util.Date 和分离的毫微秒值的组合。仅完整的秒数存到 java.util.Date 组件中。分数秒数 - 毫微秒 - 是分离的。 getTime 方法仅返回完整的秒数。如果需要包含分数秒数的时间值就必须把毫微秒转换成毫秒(毫微秒 /1000000),并把它添加到 getTime 值上。注意,hashcode() 方法使用基本的 java.util.Data 来实现,因此在它的计算中不包括毫微秒。

 


构造子索引

Timestamp(int, int, int, int, int, int, int)
构造一个 Timestamp 对象
Timestamp(long)
构造一个使用毫秒时间值的 Timestamp 。

方法索引

after(Timestamp)
该时间标记晚于时间标记参数吗?
before(Timestamp)
该时间标记早于时间标记参数吗?
equals(Timestamp)
测试 Timestamp 值是否相等
getNanos()
获取 Timestamp 的毫微秒值
setNanos(int)
设置 Timestamp 的毫微秒值
toString()
以 JDBC timestamp 换码格式来格式化一个时间标记
valueOf(String)
把 JDBC timestamp 换码格式的字符串转换成一个 Timestamp 值

构造子

Timestamp
 public Timestamp(int year,
             int month,
             int date,
                       int hour,
                       int minute,
                  int second,
                  int nano)
构造一个 Timestamp 对象

 

参数:
year - 年-1900
month - 0 到 11
day - 1 到 31
hour - 0 到 23
minute - 0 到 59
second - 0 到 59
nano - 0 到 999,999,999
Timestamp
 public Timestamp(long time)
构造一个使用毫秒时间值的 Timestamp 。 整数秒存储到基本的日期值中;分数的秒被存到毫微秒值中。

 

参数:
time - 自 GMT 1970年1月1日 00:00:00 起的毫秒数

方法

valueOf
 public static Timestamp valueOf(String s)
把 JDBC timestamp 换码格式的字符串转换成一个 Timestamp 值

 

参数:
s - "yyyy-mm-dd hh:mm:ss.fffffffff" 格式的时间标记
返回值:
相应的 Timestamp
toString
 public String toString()
以 JDBC timestamp 换码格式来格式化一个时间标记

 

返回值:
yyyy-mm-dd hh:mm:ss.fffffffff 格式的字符串
覆盖:
Date 中的 toString
getNanos
 public int getNanos()
获取 Timestamp 的毫微秒值

 

返回值:
Timestamp 的分数秒部分
setNanos
 public void setNanos(int n)
设置 Timestamp 的毫微秒值

 

参数:
n - 新的分数秒部分
equals
 public boolean equals(Timestamp ts)
测试 Timestamp 值是否相等

 

参数:
ts - 与该 Timestamp 值相比较的 Timestamp 值
before
 public boolean before(Timestamp ts)
该时间标记早于时间标记参数吗?

 

参数:
ts - 与 Timestamp 值相比较的值
after
 public boolean after(Timestamp ts)
该时间标记晚于时间标记参数吗?

 

参数:
ts - 与该 Timestamp 值相比较的 Timestamp 值

MySQL中尽量使用datetime,而不要使用timestamp

粗看起来,在MySQL中timestamp和datetime都能保存年、月、日、时、分、秒,只是timestamp可以保存1秒以下的时间。
但不仅仅是这样,timestamp是有限制范围的,从1970年1月2日到203几年。虽然这个限制看起来无所谓,因为一般用不到。但是,如果一旦有超过此范围的值insert或者update,MySQL并不会报错,并把一个年月日时分秒都是0的值放到表中。这一点在mysql文档中是有的,但是很可能未被注意到。
由于MySQL不报错,因此应用程序并不知道。当再把此值查出来的时候,就导致应用程序出现意想不到的错误。
因此,除非必须,否则在MySQL中尽量使用datetime,不用timestamp
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:32358次
    • 积分:499
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:4篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论