ホームページ >バックエンド開発 >PHPチュートリアル >MySql と Java_PHP の時間型の解析チュートリアル

MySql と Java_PHP の時間型の解析チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:04:35837ブラウズ

MySql の時間型は、Java の対応する時間型です
date java.sql.Timestamp
Timestamp java.sql.Timestamp
Time java.sql.Timestamp .sql.Time
Year .日付


分析するそれ
MySql のリファレンス マニュアルを参照してください

Date:
MySQL では、DATE 値が「YYYY-MM-DD」で表示されます。 ' 形式ですが、文字列または数値を使用して DATE 列に値を割り当てることができます。日付情報のみが記録され、範囲が 1000-01-01 から 9999-12-31 であることが示されます。
MySql は、このタイプのフィールドを YYYY-MM-DD 形式で表示します。このタイプのフィールド データを追加するには、文字列タイプまたは数値タイプのいずれかを使用できます。日付タイプのフィールドは日付情報のみを記録するため、追加されたデータに時間情報が含まれる場合、時間情報は自動的に切り捨てられます。
時間情報を保存したい場合は、DateTime タイプの使用を検討してください。
テストの結果、次の 2 つの方法を使用して日付型フィールドに入力できることが判明しました:

文字列による:

time_table(CreateDate) 値に挿入 ('2007-04-09')
By数値:
time_table(CreateDate) に挿入する値(20070409)
は、java.sql.Date 型を使用して取得できます
コードは次のとおりです:
Date dtDate =rsBuffer.getDate("CreateDate");
テストコードは次のとおりです: (IDBFace は JDBC によってカプセル化された単純なクラスに基づいており、SQL を受け入れてデータベースを操作します)

コードをコピー

コードは次のとおりです: Public void testdate () Throws sqlException {
idbfact.createmysqlfa(); CreateDate");
System.out.println(dtDate.toString());
実行結果: 2007-04-09

DateTime
サポートされる範囲は「1000-01-01 00:00:00」から「9999-12-31 23:59:59」です。 MySQL は DATETIME 値を「YYYY-MM-DD HH:MM:SS」形式で表示しますが、文字列または数値を使用して DATETIME 列に値を割り当てることができます
DateTime と Date の主な違いは、DateTime であることです。日付と時刻の情報を記録できます。 Date は日付情報のみを記録します。表現範囲は次のとおりです: 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 MySql は YYYY-MM-DD HH:MM:SS に従ってデータをフォーマットし、文字列と数値の送信方法を許可します。

たとえば、数値の形式で送信するには:
insert into time_table(CreateDate)values(20070409132013)
このタイプのデータを取得するには、次を使用できます: java.sql.Timestamp タイプ
コードは次のとおりです。 :
コードをコピーします コードは次のとおりです:

public void testDateTime() throws SQLException
{
IDBFace DBFace =DBFactory.createMySqlFace();
DBFace.connect(); DBFace の更新( strDelete);
文字列 strInsert追加
String strInsert =" time_table(CreateDateTime) 値に挿入 (20070409132013)"; from time_table"; S ResultSet rsbuffer = dbface.select (strselect);
while (rsbuffer.next ( )) {
Timestamp Tsbuffer = RSBUFFER.Gettimestamp ("CreateDatetime") ; E System.out.println (tsbuffer.tostring ());
}
DBFace.close();
}


実行結果: 2007-04 -09 13:20:13.0

TimeStamp

タイムスタンプの範囲は、「1970-01-01 00:00:00」から 2037 年の途中までです。TIMESTAMP 列は、日付と時刻を記録するのに役立ちます。 INSERT または UPDATE 操作。テーブル内の最初の TIMESTAMP 列は、値を自分で割り当てない場合、自動的に最新の操作の日付と時刻に設定されます。また、任意の TIMESTAMP 列を現在の日付と時刻に設定することもできます。 NULL 値を割り当てます。
DateTime 型と非常に似ています。
範囲 1970-01-01 –2037、精度 1 秒/
SQL の場合、Timestamp 型の列には値が割り当てられず、列は次のように構築されます。現在の時刻。
NULL 値を送信すると、列に現在の時刻が入力されます。
時間が正しく送信されない場合、列には 0 が入力されます。
Timestamp は DateTime 型よりも小さい記憶領域を必要とし、4 バイトのみ必要ですが、DateTime は 8 バイトを必要とします。
しかし、特別な注意が必要なことが 1 つあります。タイムスタンプは、1970 年から 2037 年の時間範囲のみを表すことができます。タイムスタンプを使用する場合は、送信された時間データがこの範囲を超えていないことを必ず確認してください。
このコードはDateTimeクラスに関連するものですが、使いたくないので省略しました。

Time:

範囲は「-838:59:59」から「838:59:59」です。ただし、MySQL では TIME 値を「HH:MM:SS」形式で表示します。


Time は時間情報のみを記録し、日付情報は含まれません。

範囲は -838:59:59 ~ 838:59:59 で、MySql はデータを HH:MM:SS でフォ​​ーマットし、文字列または数値を入力できます。
コード:

コードをコピー

コードは次のとおりです:

public void testTime() throws SQLException
{
IDBFace =DBFactory.createMySqlFace();
DBFace.connect();
//清空表
String strDelete ="time_table から削除";
DBFace.update(strDelete) ;
//追加

String strInsert ="time_table(CreateTime) 値に挿入(131211)";
DBFace.update(strInsert);
//获取
String strSelect ="select * from time_table";
ResultSet rsBuffer = DBFace.select(strSelect);
while(rsBuffer.next())
{
Time tmBuffer =rsBuffer.getTime("CreateTime");
System.out.println(tmBuffer.toString());
}
DBFace。 close();
}

执行結果: 13:12:11

2 桁または 4 桁の形式の年。デフォルトは 4 桁の形式です。 4 桁の形式では、許容値は 1901 ~ 2155 および 0000 です。2 桁の形式では、許容値は 70 ~ 69 で、1970 年から 2069 年までの年を表します。MySQL は YEAR 値を YYYY 形式で表示しますが、次のことができます。文字列または数値を使用して YEAR 列に値を割り当てます。 YEAR タイプは、MySQL 3.22 より前では使用できません。
年には、4 位と 2 位の 2 つの表現方法があります。

の範囲は 1901 ~ 2155
2 位の表現方法で、その後の 2 位のみが表示されます。文字列または数字の形式で入力することを許可します。

public void test Year() throws SQLException
{
IDBFace DBFace =DBFactory.createMySqlFace();
DBFace.connect();
//清空表
String strDelete ="time_table から削除";
DBFace.update(strDelete) ;
//追加

String strInsert ="time_table(Create Year) 値に挿入(2007)";
DBFace.update(strInsert);
//获取
String strSelect ="select * from time_table";
ResultSet rsBuffer = DBFace.select(strSelect);
while(rsBuffer.next())
{
Date dtBuffer =rsBuffer.getDate("Create Year");
System.out.println(dtBuffer.get Year()+1900);
}
DBFace.close();
}

実行結果:2007
必要な説明は:
Date.get Year() メソッドは 1900 年までに何年かを返します。正確な期間を表示するには、1900 を加算する必要があります。
この方法はすでに拡張されています。データと表示の時刻は、いかなる変換も行われずに保存されるが、(1) 時刻データの正当性は個別に公開されている。
(2) システムが必要に応じて時間間隔を条件として設定することもできます。時間間隔は、MySql が提供する API を使用する必要はありません。たとえば、100 万件のデータのうち、評価期間が 1992 年 3 月 12 日から 1992 年 3 月 13 日までの 100 件のデータを転送できない可能性があります。
さらに、MySql は 4.1 の時間精度でわずか数秒に達します。
より細かい時間粒度を考慮する必要があります。 ).
これは単なる 1 つの方法であり、追加の問題はまだ説明されていません。



http://www.bkjia.com/PHPjc/327755.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/327755.html
技術記事

MySql の時間の種類には Java に関係する時間の種類 date java.sql.Date Datetime java.sql.Timestamp Timestamp java.sql.Timestamp Time java.sql.Time Year java.sql.Date それ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。