类 java.sql.Timestamp
java.lang.Object | +----java.util.Date | +----java.sql.Timestamp
-
public class
Timestamp
extends
Date
- 构造一个 Timestamp 对象 Timestamp(long)
- 构造一个使用毫秒时间值的 Timestamp 。
- 该时间标记晚于时间标记参数吗? before(Timestamp)
- 该时间标记早于时间标记参数吗? equals(Timestamp)
- 测试 Timestamp 值是否相等 getNanos()
- 获取 Timestamp 的毫微秒值 setNanos(int)
- 设置 Timestamp 的毫微秒值 toString()
- 以 JDBC timestamp 换码格式来格式化一个时间标记 valueOf(String)
- 把 JDBC timestamp 换码格式的字符串转换成一个 Timestamp 值
-
构造一个 Timestamp 对象
-
-
参数:
- year - 年-1900
- month - 0 到 11
- day - 1 到 31
- hour - 0 到 23
- minute - 0 到 59
- second - 0 到 59
- nano - 0 到 999,999,999
-
构造一个使用毫秒时间值的 Timestamp 。 整数秒存储到基本的日期值中;分数的秒被存到毫微秒值中。
-
-
参数:
- time - 自 GMT 1970年1月1日 00:00:00 起的毫秒数
-
把 JDBC timestamp 换码格式的字符串转换成一个 Timestamp 值
-
-
参数:
- s - "yyyy-mm-dd hh:mm:ss.fffffffff" 格式的时间标记 返回值:
- 相应的 Timestamp
-
获取 Timestamp 的毫微秒值
-
-
返回值:
- Timestamp 的分数秒部分
-
设置 Timestamp 的毫微秒值
-
-
参数:
- n - 新的分数秒部分
-
测试 Timestamp 值是否相等
-
-
参数:
- ts - 与该 Timestamp 值相比较的 Timestamp 值
-
该时间标记早于时间标记参数吗?
-
-
参数:
- ts - 与 Timestamp 值相比较的值
-
该时间标记晚于时间标记参数吗?
-
-
参数:
- ts - 与该 Timestamp 值相比较的 Timestamp 值
该类是 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)
方法索引
-
after(Timestamp)
构造子
Timestamppublic Timestamp(int year, int month, int date, int hour, int minute, int second, int nano)
public Timestamp(long time)
方法
valueOfpublic static Timestamp valueOf(String s)
public String toString()getNanos
public int getNanos()
public void setNanos(int n)
public boolean equals(Timestamp ts)
public boolean before(Timestamp ts)
public boolean after(Timestamp ts)
MySQL中尽量使用datetime,而不要使用timestamp
粗看起来,在MySQL中timestamp和datetime都能保存年、月、日、时、分、秒,只是timestamp可以保存1秒以下的时间。
但不仅仅是这样,
timestamp是有限制范围的,从1970年1月2日到203几年。虽然这个限制看起来无所谓,因为一般用不到。但是,
如果一旦有超过此范围的值insert或者update,MySQL并不会报错,并把一个年月日时分秒都是0的值放到表中。这一点在mysql文档中是有的,但是很可能未被注意到。
由于MySQL不报错,因此应用程序并不知道。当再把此值查出来的时候,
就导致应用程序出现意想不到的错误。
因此,除非必须,否则在MySQL中尽量使用datetime,不用timestamp。