timestamp格式,Java中如何将字符串转化为Timestamp格式的 !
timestamp格式,Java中如何将字符串转化为Timestamp格式的 !详细介绍
本文目录一览: oracle数据库 时间 TIMESTAMP(6)这是什么类型啊 怎么也插不进数据
时间戳类型,参数6指的是表示秒的数字的小数点右边可以存储6位数字,最多9位。
插入时,如下方式:
insert into test4 values(to_timestamp('2013-12-12 23:23:23.112324233','yyyy-mm--dd hh24:mi:ss.ff'));
是时间戳类型,参数6指的是表示秒的数字的小数点右边可以存储6位数字,最多9位。解决方法如下:
1、时间戳的概念:它是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
2、在oracle使用时间戳,一般都是为了方便计算时间差的,要知道oracle中的date类型想减是不能友好的得到时间的差值的。所以使用时间戳来得到两个时间差。
3、首先来看oracle中如何获得当前时间的时间戳,用当前时间减去计算机元年后再经过换算得到了的从1970年来到当前时间的时间戳,单位是微妙。
4、另外oracle提供了另一种便捷得到两个时间差的方式,那就是使用timestamp数据类型,它类似date类型,但是存储的时间更为精确,显示的格式:yyyy-mm-dd hh24:mi:ss.ff AM,其中ff是小数秒。
5、timestamp类型的时间差可读性也比上面那种好一些,可以直观看出两个时间差。
mysql中Timestamp,time,datetime 区别??
Timestamp:时间格式为 类似 2012-11-11 12:23:00 ,默认值为当前时间
time时间格式类似12:23:00 默认值为null
datetime时间格式类似2012-11-11 12:23:00 默认值为null
timestamp
英 ['taimst?mp]
美 ['taimst?mp]
n. 时间戳;时间邮票
dateTime
历法日期和时间
格式表示
结构支持
TIMESTAMP[(M)]
时间戳。范围是’1970-01-01 00:00:00’到2037年。
TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。
如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。
也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。
TIMESTAMP值返回后显示为’YYYY-MM-DD HH:MM:SS’格式的字符串,
显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。
TIME
时间。范围是’-838:59:59’到’838:59:59’。
MySQL以’HH:MM:SS’格式显示TIME值,但允许使用字符串或数字为TIME列分配值。
DATETIME
日期和时间的组合。
支持的范围是’1000-01-01 00:00:00’到’9999-12-31 23:59:59’。
MySQL以’YYYY-MM-DD HH:MM:SS’格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。
Java中如何将字符串转化为Timestamp格式的 !
给你个例子,看看 用SimpleDateFormat.
SimpleDateFormat 这个时间格式化的类很有用,自己多练习练习,
可以 时间->字符串,
也可以 字符串-> 时间.
import java.sql.Timestamp;
import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class $ {
public static void main(String[] args) {
try {
String time = "2012-02-21T13:21:59";
Format f = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date d = (Date) f.parseObject(time);
Timestamp ts = new Timestamp(d.getTime());
System.out.println(ts);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String time="2012-02-21T13:21:59";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date = sdf.parse(time.replace('T', ' '));
System.out.println(date.getTime());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
用simpleDateFormat,设置format格式到秒
先用SimpleDateFormat转成date类型,然后再转。
java将字符串转化为Timestamp格式,可以使用Timestamp.valueof方法,代码如下:
import java.sql.Timestamp;public class ceshi { public static void main(String[] args) { String tsStr = "2012-12-31 00:00:00"; Timestamp ts = new Timestamp(System.currentTimeMillis()); ts = Timestamp.valueOf(tsStr);//将字符串转换成Timestamp格式 System.out.println(ts); }}运行结果:
MYSQL中怎样设列的默认值为Now()的介绍
MySQL目前不支持列的Default 为函数的形式 如达到你某列的默认值为当前更新日期与时间的功能 你可以使用TIMESTAMP列类型 下面就详细说明TIMESTAMP列类型 TIMESTAMP列类型 TIMESTAMP值可以从 的某时的开始一直到 年 精度为一秒 其值作为数字显示 TIMESTAMP值显示尺寸的格式如下表所示 + + + | 列类型 | 显示格式 | | TIMESTAMP( ) | YYYYMMDDHHMMSS | | TIMESTAMP( ) | YYMMDDHHMMSS | | TIMESTAMP( ) | YYMMDDHHMM | | TIMESTAMP( ) | YYYYMMDD | | TIMESTAMP( ) | YYMMDD | | TIMESTAMP( ) | YYMM | | TIMESTAMP( ) | YY | + + + 完整 TIMESTAMP格式是 位 但TIMESTAMP列也可以用更短的显示尺寸创造 最常见的显示尺寸是 和 你可以在创建表时指定一个任意的显示尺寸 但是定义列长为 或比 大均会被强制定义为列长 列长在从 ~ 范围的奇数值尺寸均被强制为下一个更大的偶数 列如 定义字段长度 强制字段长度 TIMESTAMP( ) > TIMESTAMP( ) TIMESTAMP( ) > TIMESTAMP( ) TIMESTAMP( ) > TIMESTAMP( ) TIMESTAMP( ) > TIMESTAMP( ) 所有的TIMESTAMP列都有同样的存储大小 使用被指定的时期时间值的完整精度( 位)存储合法的值不考虑显示尺寸 不合法的日期 将会被强制为 存储 这有几个含意 虽然你建表时定义了列TIMESTAMP( ) 但在你进行数据插入与更新时TIMESTAMP列实际上保存了 位的数据(包括年月日时分秒) 只不过在你进行查询时MySQL返回给你的是 位的年月日数据 如果你使用ALTER TABLE拓宽一个狭窄的TIMESTAMP列 以前被 隐蔽 的信息将被显示 同样 缩小一个TIMESTAMP列不会导致信息失去 除了感觉上值在显示时 较少的信息被显示出 尽管TIMESTAMP值被存储为完整精度 直接操作存储值的唯一函数是UNIX_TIMESTAMP() 由于MySQL返回TIMESTAMP列的列值是进过格式化后的检索的值 这意味着你可能不能使用某些函数来操作TIMESTAMP列(例如HOUR()或SECOND()) 除非TIMESTAMP值的相关部分被包含在格式化的值中 例如 一个TIMESTAMP列只有被定义为TIMESTAMP( )以上时 TIMESTAMP列的HH部分才会被显示 因此在更短的TIMESTAMP值上使用HOUR()会产生一个不可预知的结果 不合法TIMESTAMP值被变换到适当类型的 零 值( ) (DATETIME DATE亦然) 你可以使用下列语句来验证 CREATE TABLE test ( id INT ( ) UNSIGNED AUTO_INCREMENT date TIMESTAMP ( ) PRIMARY KEY( id )); INSERT INTO test SET id = ; SELECT * FROM test; + + + | id | date | + + + | | | + + + ALTER TABLE test CHANGE date date TIMESTAMP( ); SELECT * FROM test; + + + | id | date | + + + | | | + + + 你可以使用TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作 如果你有多个TIMESTAMP列 只有第一个自动更新 自动更新第一个TIMESTAMP列在下列任何条件下发生 列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定 列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值 (注意一个UPDATE设置一个列为它已经有的值 这将不引起TIMESTAMP列被更新 因为如果你设置一个列为它当前的值 MySQL为了效率而忽略更改 ) 你明确地设定TIMESTAMP列为NULL 除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间 只要将列设为NULL 或NOW() CREATE TABLE test ( id INT ( ) UNSIGNED AUTO_INCREMENT date TIMESTAMP ( ) date TIMESTAMP ( ) PRIMARY KEY( id ) ); INSERT INTO test (id date date ) VALUES ( NULL NULL); INSERT INTO test SET id= ; + + + + | id | date | date | + + + + | | | | | | | | + + + + >第一条指令因设date date 为NULL 所以date date 值均为当前时间 第二条指令因没有设date date 列值 第一个TIMESTAMP列date 为更新为当前时间 而二个TIMESTAMP列date 因日期不合法而变为 UPDATE test SET id= WHERE id= ; + + + + | id | date | date | + + + + | | | | | | | | + + + + >这条指令没有明确地设定date 的列值 所以第一个TIMESTAMP列date 将被更新为当前时间 UPDATE test SET id= date =date date =NOW() WHERE id= ; + + + + | id | date | date | + + + + | | | | | | | | + + + + >这条指令因设定date =date 所以在更新数据时date 列值并不会发生改变 而因设定date =NOW() 所以在更新数据时date 列值会被更新为当前时间 此指令等效为 UPDATE test SET id= date =date date =NULL WHERE id= ; 因MySQL返回的 TIMESTAMP 列为数字显示形式 你可以用DATE_FROMAT()函数来格式化 TIMESTAMP 列 SELECT id DATE_FORMAT(date %Y %m %d %H:%i:%s ) As date DATE_FORMAT(date %Y %m %d %H:%i:%s ) As date FROM test; + + + + | id | date | date | + + + + | | : : | : : | | | : : | : : | + + + + SELECT id DATE_FORMAT(date %Y %m %d ) As date DATE_FORMAT(date %Y %m %d ) As date FROM test; + + + + | id | date | date | + + + + | | | | | | | | + + + + 在某种程度上 你可以把一种日期类型的值赋给一个不同的日期类型的对象 然而 而尤其注意的是 值有可能发生一些改变或信息的损失 如果你将一个DATE值赋给一个DATETIME或TIMESTAMP对象 结果值的时间部分被设置为 : : 因为DATE值中不包含有时间信息 如果你将一个DATETIME或TIMESTAMP值赋给一个DATE对象 结果值的时间部分被删除 因为DATE类型不存储时间信息 尽管DATETIME DATE和TIMESTAMP值全都可以用同样的格式集来指定 但所有类型不都有同样的值范围 例如 TIMESTAMP值不能比 早 也不能比 晚 这意味着 一个日期例如 当作为一个DATETIME或DATE值时它是合法的 但它不是一个正确TIMESTAMP值!并且如果将这样的一个对象赋值给TIMESTAMP列 它将被变换为 当指定日期值时 当心某些缺陷 允许作为字符串指定值的宽松格式能被欺骗 例如 因为 : 分隔符的使用 值 : : 可能看起来像时间值 但是如果在一个日期中使用 上下文将作为年份被解释成 值 : : 将被变换到 因为 不是一个合法的月份 以 位数字指定的年值是模糊的 因为世纪是未知的 MySQL使用下列规则解释 位年值 在 范围的年值被变换到 在范围 的年值被变换到 lishixinzhi/Article/program/MySQL/201311/11205
mysql中DATETIME,DATE和TIMESTAMP的区别
DATETIME、DATE 和 TIMESTAMP
类型是相似的。本篇描述了它们的特性以及它们的相似点与不同点。
DATETIME 类型可用于需要同时包含日期和时间信息的值。MySQL 以 'YYYY-MM-DD HH:MM:SS' 格式检索与显示
DATETIME 类型。支持的范围是 '1000-01-01 00:00:00' 到 '9999-12-31
23:59:59'。(“支持”的含义是,尽管更早的值可能工作,但不能保证他们均可以。)
DATE 类型可用于需要一个日期值而不需要时间部分时。MySQL 以 'YYYY-MM-DD' 格式检索与显示 DATE
值。支持的范围是 '1000-01-01' 到 '9999-12-31'。
TIMESTAMP 列类型提供了一种类型,通过它你可以以当前操作的日期和时间自动地标记 Insert 或Update
操作。如果一张表中有多个 TIMESTAMP 列,只有第一个被自动更新。
“完整”TIMESTAMP格式是14位,但TIMESTAMP列也可以用更短的显示尺寸创造
最常见的显示尺寸是6、8、12、和14。
你可以在创建表时指定一个任意的显示尺寸,但是定义列长为0或比14大均会被强制定义为列长14。
列长在从1~13范围的奇数值尺寸均被强制为下一个更大的偶数。
列如:
定义字段长度 强制字段长度
TIMESTAMP(0) -> TIMESTAMP(14)
TIMESTAMP(15)-> TIMESTAMP(14)
TIMESTAMP(1) -> TIMESTAMP(2)
TIMESTAMP(5) -> TIMESTAMP(6)
所有的TIMESTAMP列都有同样的存储大小,
使用被指定的时期时间值的完整精度(14位)存储合法的值不考虑显示尺寸。
不合法的日期,将会被强制为0存储
自动更新第一个 TIMESTAMP 列在下列任何条件下发生:
列值没有明确地在一个 Insert 或 LOAD DATA INFILE 语句中被指定。
列值没有明确地在一个 Update 语句中被指定,并且其它的一些列值已发生改变。(注意,当一个 Update
设置一个列值为它原有值时,这将不会引起 TIMESTAMP 列的更新,因为,如果你设置一个列值为它当前值时,MySQL
为了效率为忽略更新。)
明确地以 NULL 设置 TIMESTAMP 列。
第一个列以外其它 TIMESTAMP 列,可以设置到当前的日期和时间,只要将该列赋值 NULL 或 NOW()。
任何 TIMESTAMP 列均可以被设置一个不同于当前操作日期与时间的值,这通过为该列明确指定一个你所期望的值来实现。这也适用于第一个
TIMESTAMP 列。这个选择性是很有用的,举例来说,当你希望 TIMESTAMP
列保存该记录行被新添加时的当前的日期和时间,但该值不再发生改变,无论以后是否对该记录行进行过更新:
当该记录行被建立时,让 MySQL 设置该列值。这将初始化该列为当前日期和时间。
以后当你对该记录行的其它列执行更新时,为 TIMESTAMP 列值明确地指定为它原来的值。
另一方面,你可能发现更容易的方法,使用 DATETIME 列,当新建记录行时以 NOW()
初始化该列,以后在对该记录行进行更新时不再处理它。
hive 时间差(天、小时、分、秒)
?? 说明: ?? unix_timestamp() 是hive系统时间,格式是timestamp,精确到秒。 ?? unix_timestamp(ymdhms) 是把时间转换成timestamp格式,是 2018-05-23 07:15:50 格式。 ?? unix_timestamp() - unix_timestamp(ymdhms) 是两个时间转换为timestamp之后相减,timestamp单位是秒,相减之后是两个时间之间相差的秒数。 ?? CAST((unix_timestamp() - unix_timestamp(ymdhms)) % 60 AS int) 是相差的秒数。 ?? CAST((unix_timestamp() - unix_timestamp(ymdhms)) / 60 AS int) % 60 是相差的分钟数。 ?? CAST((unix_timestamp() - unix_timestamp(ymdhms)) / (60 * 60) AS int) % 24 是相差的小时数。 ?? concat(CAST((unix_timestamp() - unix_timestamp(ymdhms)) / (60 * 60 * 24) AS int) 是相差的天数。 ?? 查询结果如下:
参考
Oracle里TIMESTAMP(6)是什么格式的? 我想问一下具体的示例即可,不需要语法
时间戳类型,参数6指的是表示秒的数字的小数点右边可以存储6位数字,最多9位。
插入时,如下方式:
insert into test4 values(to_timestamp('2013-12-12 23:23:23.112324233','yyyy-mm--dd hh24:mi:ss.ff'));
cast(直接想减的结果 as Number(18,4)
java timestamp 格式化
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); //12小时制
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //24小时制
这是bean:write标签自身的问题,只需要将日期格式化就ok了,比如:
不知道这样行不行,试试吧。
数据库中也用timestamp类型不就结了
肯定是bean:write标签的事
datetime和timestamp的区别
timestamp:占用 4 字节,内部实现是新纪元时间(1970-01-01 00:00:00)以来的秒,那么这种格式在展示给用户的时候就需要做必要的时区转换才能得到正确数据。
想要区分两者的不同,就要了解两者各自的存储特性。
DATETIME:存储的时间范围更大,是从1001年到9999年。DATETIME存储日期和时间会把值封装到YYYYMMDDHHMMSS的整数中,所以跟时区无关。存储的值会占用8个字节的存储空间。
TIMESTAMP:它存储的时间范围小的多,是从1970年到2038年。它存储值只会占用4个字节的存储空间。需要注意的一点是,它会根据时区的不同,表现为不同的时间。举个例子来说吧,如果存储的值是0,那么在格林尼治就会表现为1970-01-01 00:00:00,但是在美国就会表示为1969-12-31 19:00:00。
还有,DATETIME的默认值是NULL,但是TIMESTAMP的默认值是NOT NULL,可以在创建表的时候,为TIMESTAMP列设置默认值CURRENT_TIMESTAMP,列就会在数据插入时自动记录当前的时间。
再多说一句,Mysql提供了两个函数来做UNIX时间戳和日期的相互转化:FROM_UNIXTIME()可以将UNIX时间戳转化为日期;UNIX_TIMESTAMP()可以将日期转化为UNIX时间戳。
纯手打,希望可以帮到你,共同进步。:)
完全不同的两个类型
datetime为时间类型,由日期跟时间两部分组成,精度3.33毫秒
timestamp为varbinary(十六进制)类型,是时间戳值,且在数据库中必须是唯一的
在oracle中,这两个类型是可以转换的,但是在sqlserver中是不可以的
时间戳只是为了标识数据的唯一与改变的,与时间不可互换
datetime和timestamp是出现在MySQL和SqlServer数据库中的。
MySQL中datetime和timestamp的区别:
(一)范围不同。
“datetime” 以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值。支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'TIMESTAMP值不能早于1970或晚于2037
(二)储存不同。
1,TIMESTAMP
①4个字节储存(Time stamp value is stored in 4 bytes)
②值以UTC格式保存( it stores the number of milliseconds)
③时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。
2,datetime
①8个字节储存(8 bytes storage)
②实际格式储存(Just stores what you have stored and retrieves the same thing which you have stored.)
③与时区无关(It has nothing to deal with the TIMEZONE and Conversion.)
注:TIMESTAMP列的显示格式与datetime列相同。
SqlServer中datetime和timestamp在中用法区别基本都差不多。
datetime :
SqlServer中用两个 4 字节的整数内部存储 datetime 数据类型的值。第一个 4 字节存储 base date(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参考日期。不允许早于 1753 年 1 月 1 日的 datetime 值。另外一个 4 字节存储以午夜后毫秒数所代表的每天的时间。
注:smalldatetime 数据类型存储日期和每天的时间,但精确度低于 datetime。SQL Server 将 smalldatetime 的值存储为两个 2 字节的整数。第一个 2 字节存储 1900 年 1 月 1 日后的天数。另外一个 2 字节存储午夜后的分钟数。日期范围从1900 年 1 月 1 日到 2079 年 6 月 6 日,精确到分钟。
timestamp:timestamp 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp 一般用作给表行加版本戳的机制。存储大小为 8 字节。