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>