当前位置:首页 » 编程语言 » sqltimestamp格式化
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqltimestamp格式化

发布时间: 2022-02-25 09:58:48

1. sql server表中timestamp类型的具体说明

timestamp
timestamp 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp 一般用作给表行加版本戳的机制。存储大小为 8 字节。

注释
Transact-SQL timestamp 数据类型与在 SQL-92 标准中定义的 timestamp 数据类型不同。SQL-92 timestamp 数据类型等价于 Transact-SQL datetime 数据类型。

Microsoft® SQL Server™ 将来的版本可能会修改 Transact-SQL timestamp 数据类型的行为,使它与在标准中定义的行为一致。到那时,当前的 timestamp 数据类型将用 rowversion 数据类型替换。

Microsoft® SQL Server™ 2000 引入了 timestamp 数据类型的 rowversion 同义词。在 DDL 语句中尽可能使用 rowversion 而不使用 timestamp。rowversion 受数据类型同义词行为的制约。有关更多信息,请参见数据类型同义词。

在 CREATE TABLE 或 ALTER TABLE 语句中,不必为 timestamp 数据类型提供列名:

CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, timestamp)

如果没有提供列名,SQL Server 将生成 timestamp 的列名。rowversion 数据类型同义词不具有这样的行为。指定 rowversion 时必须提供列名。

一个表只能有一个 timestamp 列。每次插入或更新包含 timestamp 列的行时,timestamp 列中的值均会更新。这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改 timestamp 值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。如果该列属于索引键,则对数据行的所有更新还将导致索引更新。

不可为空的 timestamp 列在语义上等价于 binary(8) 列。可为空的 timestamp 列在语义上等价于 varbinary(8) 列。

2. SQL怎么把数据库里面时间格式改成时间戳

SQL里面有个DATEADD的函数。时间戳就是一个从1970-01-01 08:00:00到时间的相隔的秒数。

注解:北京时间与GMT时间关系

1、GMT是中央时区,北京在东8区,相差8个小时

2、所以北京时间 = GMT时间 + 八小时

例如:

SELECT DATEADD(S,1160701488 + 8 * 3600,'1970-01-01 00:00:00') --时间戳转换成普通时间

SELECT DATEDIFF(S,'1970-01-01 00:00:00', '2006-10-13 09:04:48.000') - 8 * 3600--普通时间转换成时间戳

3. 如何将Timestamp格式化成年月日,再返回Timestamp类型,我的方法返回了null

public static java.sql.Timestamp getDate(String datestr) {
try {
java.text.SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = myFormat.parse(datestr);
return new Timestamp(date.getTime());
}
catch (Exception e) {
return null;
}
}

这个刚写的,测试过了,可以

4. plsql 如何设置timestamp的显示格式

和date类型一样,使用to_char函数转换一下就行了。
dexter@REPO>selectto_char(systimestamp,'yyyymmddhh24missFF')fromal;

TO_CHAR(SYSTIMESTAMP,'YYYYMMDDHH24MISSFF')
------------------------------------------------------------------------------------------------------------------------------------------------------
20140109040325546325

5. 在MySQL数据库里面,怎么使用SQL语句查询功能把时间戳格式格式化为日期格式如:2013-02-28 6:00:00

你没明确说要更新什么字段,只能给你个例子:

update archives set 字段A =5 where from_unixtime(pubdate,'%Y-%m-%d %h:%i:%m')='2012-11-11 00:00:00';

------------------from_unixtime(pubdate,'%Y-%m-%d %h:%i:%m')这个的意思就是把时间戳变成日期
类似2012-11-11 00:10:10这样的格式

如果说是要把pubdate字段的内容直接更新成刚才那样的日期格式,int类型的字段是存储不了的

6. 在sql中如何将timestamp转化为date类型,用cast转只有日期部分,没有时间部分,如何

楼主使用的是MSSQL还是ORCALE 或者其他?每种数据库对CAST的函数定义都不太一样;
MSSQL中要定义转换的类型,就是那些什么112,108之类的类型,具体每个代表什么类型忘记了,可以自己尝试一下;select cast(datetime,'转换的数据',112)
在oracle中就没那么复杂了,oracle有一点讨厌的是要先to_date一下,select cast(to_date('2013-11-22 15:33:12','yyyy-mm-dd hh24:mi:ss') as date) from al; 实际上在oracle也很少用到这个函数;

7. sql 中string转换成timestamp类型

根据返回值的需要,使用to_date或者to_timestamp函数。

Test=#SELECTTO_DATE('2010.10.01','YYYY.MM.DD');
to_date
------------
2010-10-01
(1行记录)


Test=#SELECTto_timestamp('2010.10.0121:30:50','YYYY.MM.DDHH24:MI:SS');
to_timestamp
------------------------
2010-10-0121:30:50+08
(1行记录)

PostgreSQL 9.2 下测试通过.

8. sql语句中的timestamp类型

首先纠正一下你这里使用错误的类型~timestamp 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp 一般用作给表行加版本戳的机制。存储大小为 8 字节。它不是用来存时间的,时间应该用datetime类型~如果你这里的时间列是想获取当前系统时间的话,你可以在他的默认列里输入,getdate(),然后在插入的时候跳过这一列就行了~

9. 如何格式化数据类型为 timestamp with time zone 的显示格式

数据类为 TIMESTAMP(6) WITH TIME ZONE 的字段在显示日期时总是这样:
SQL> select last_start_date from user_scheler_jobs;
LAST_START_DATE
-----------------------------------
21-MAR-06 03.00.00.421000 AM +08:00
20-MAR-06 10.00.02.734000 PM +08:00
20-MAR-06 10.00.02.734000 PM +08:00
我不习惯.421000 AM +08:00 这一段,对我来说,精确到秒即可,前段时间琢磨着,DATE类型的显示格式可以被这样设置:ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'。于是尝试着往注册表里加NLS_TIMESTAMP_FORMAT 来格式化该字段的显示格式,但屡次测试,都失败。NND,问了ORACLE,才知道是这个参数:

SQL> create table tt(id1 timestamp, id2 timestamp with time zone);
Table created.
SQL> insert into tt select sysdate, sysdate from al;
1 row created.
SQL> commit;
Commit complete.
SQL> select * from tt;
ID1 ID2
------------------------------------- -------------------------------------
21-MAR-06 03.00.12.000000 PM 21-MAR-06 03.00.12.000000 PM +08:00
SQL> alter session set nls_timestamp_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
SQL> select * from tt;
ID1 ID2
------------------------------------- -------------------------------------
2006-03-21 15:00:12 21-MAR-06 03.00.12.000000 PM +08:00
SQL> alter session set nls_timestamp_tz_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
SQL> select * from tt;
ID1 ID2
------------------------------------- -------------------------------------
2006-03-21 15:00:12 2006-03-21 15:00:12

SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod
PL/SQL Release 10.2.0.2.0 - Proction
CORE 10.2.0.2.0 Proction
TNS for 32-bit Windows: Version 10.2.0.2.0 - Proction
NLSRTL Version 10.2.0.2.0 - Proction
SQL>