MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

Year(2)またはYear(4)のどの形式でMySQLは日付「0000-00-00」からの年の値を返しますか?


日付値を「0000-00-00」としてMySQLテーブルに格納した場合、そのような種類の日付から年の値を抽出すると、MySQLは0を返します。Year(2)にもYear(4)にもなりません。フォーマット。それを理解するために、「detail_bday」テーブルの次のデータを使用しています-

mysql> Select * from detail_bday;
+----+---------+------------+
| Sr | Name    | Birth_Date |
+----+---------+------------+
| 1 | Saurabh  | 1990-05-12 |
| 2 | Raman    | 1993-06-11 |
| 3 | Gaurav   | 1984-01-17 |
| 4 | Rahul    | 1993-06-11 |
| 5 | Sonia    | 1993-11-31 |
| 6 | Ram      | 0000-00-00 |
+----+---------+------------+
6 rows in set (0.00 sec)

次のクエリは、日付「0000-00-00」から年の値を取得しようとします-

mysql> Select Year(Birth_date) from detail_bday Where Name = 'Ram';
+------------------+
| Year(Birth_date) |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

上記の結果セットは、MySQLがYear(2)またはYear(4)の形式で値を指定する代わりに0を返すことを示しています。


  1. '10/12/2010'のような日付形式からフェッチされた特定の年でテーブルのレコードを更新しますか?

    特定の年のレコードを更新するには、次の構文のようにYEAR()メソッドを使用します。 update yourTableName set yourColumnName1=yourValue1 where YEAR(str_to_date(yourColumnName2,'%d/%m/%Y'))=yourValue2; まずテーブルを作成しましょう- mysql> create table DemoTable1924    (    UserName varchar(20),    UserJoiningDate

  2. MySQLの日付形式から数値の日付値を抽出しますか?

    これには、UNIX_TIMESTAMP()を使用します。以下は構文です- select UNIX_TIMESTAMP(STR_TO_DATE(yourColumnName, "%d-%b-%y")) as anyAliasName from yourTableName; テーブルを作成しましょう- mysql> create table demo34 −> ( −> datevalue varchar(40) −> ); Query OK, 0 rows affected (1.51 sec) 挿入コマンド-を