MySQL

 Computer >> コンピューター >  >> プログラミング >> MySQL
  1. MySQLで秒数をTIMESTAMPに変換する方法|FROM_UNIXTIME()関数の使い方

    MySQLでは、FROM_UNIXTIME()関数を使うことで、秒数(Unixタイムスタンプ)をTIMESTAMP型の日時データに変換できます。これはUNIX_TIMESTAMP()関数と正反対の働きをする関数です。例えば、11576070秒という値は、TIMESTAMP型の「1970-05-15 05:04:30」に変換されます。mysql> Select FROM_UNIXTIME(11576070); +--------------------------------+ | FROM_UNIXTIME(11576070) | +--------------------

  2. MySQLのFROM_UNIXTIME()関数でTIMESTAMPデータ型の開始範囲を確認する方法

    FROM_UNIXTIME()関数でTIMESTAMP型の開始範囲を確認するMySQLのFROM_UNIXTIME()関数は、Unixタイムスタンプ(秒数)をTIMESTAMP型の日時値に変換する関数です。この性質を利用すると、TIMESTAMPデータ型の範囲がどこから始まるのかを簡単に確認できます。0秒を指定した場合引数に「0」を指定すると、Unixエポック(1970年1月1日 00:00:00 UTC)に対応する日時が返されます。これがTIMESTAMPデータ型の範囲の開始点です。mysql> Select FROM_UNIXTIME(0);+--------------------

  3. MySQLでTIME・DATETIMEの値を数値形式に変換する方法をわかりやすく解説

    MySQLでは、TIME(N)やDATETIME(N)の値を数値形式に変換したい場合、その値に+0(ゼロを足す)だけで実現できます。非常にシンプルなテクニックですが、覚えておくと便利です。変換結果は、小数点以下の桁数Nの値によって異なり、以下のようなルールで決まります。Nが0の場合:整数(INTEGER)に変換されるTIME(N)およびDATETIME(N)のNが0の場合、これらの値は整数型として変換されます。例えば、現在時刻を返すCURTIME()や、現在の日時を返すNOW()の値は、次のように+0することで整数値へと変換できます。mysql> SELECT CURTIME(), CU

  4. MySQLに無効な日付を保存させるにはどうすればよいですか?

    ALLOW_INVALID_DATES モードで無効な日付を保存するMySQLでは、デフォルトの設定では「2015-11-31」のような実在しない日付を挿入しようとするとエラーが発生します。しかし、SQLモード ALLOW_INVALID_DATES を有効にすることで、このような無効な日付もテーブルにそのまま保存できるようになります。SQLモードの有効化まず、以下のように SET ステートメントで該当のSQLモードを有効にします。mysql> SET sql_mode = ALLOW_INVALID_DATES;無効な日付の挿入例モードを有効化した後は、存在しない日付(11月には31日

  5. MySQLで生年月日から年齢を計算する方法をわかりやすく解説

    MySQLで生年月日から年齢(歳)を計算する方法 MySQLでは、登録された生年月日をもとに、現在の年齢をSQLだけで簡単に計算できます。ここでは、ユーザー変数と日付関数を組み合わせた基本的な方法を、手順を追って紹介します。 手順1:生年月日をユーザー変数に格納する まず、SET文を使って生年月日の値をユーザー変数「@dob」に代入します。以下の例では、「1984-01-17」という日付を変数に設定しています。 mysql> SET @dob = 1984-01-17; Query OK, 0 rows affected (0.00 sec) このクエリにより、変数「@dob」に生年月

  6. ビューを使ってMySQLのCHECK制約をエミュレートする方法

    MySQLは参照整合性を保証するための外部キー(FOREIGN KEY)はサポートしていますが、残念ながらCHECK制約はサポートしていません。しかし、WITH CHECK OPTIONを付けたビュー(またはトリガー)を活用することで、CHECK制約と同等のデータ検証を実現できます。ここでは、ビューを使用したエミュレート方法を具体例とともに解説します。 前提となるテーブルと課題 「car1」というテーブルがあり、登録番号は「英字2文字-数字3文字-英字2文字」という固定形式に従うものとします。 mysql> CREATE TABLE car1 (number CHAR(9)); Quer

  7. MySQLで年・週番号・曜日を指定して日付を計算する方法

    MySQLで年・週番号・曜日から日付を算出する方法MySQLでは、年・週番号・曜日の3つの値を指定することで、対応する具体的な日付を計算できます。ここでは、ユーザー定義変数と STR_TO_DATE() 関数を組み合わせた方法を解説します。1. 変数に値を設定するまず、SET文を使って年・週番号・曜日をそれぞれユーザー定義変数に代入します。mysql> SET @year=2017, @week=15, @day=4;Query OK, 0 rows affected (0.00 sec)上記のクエリでは、変数 @year に「2017」、@week に「15」、@day に「4」をそれ

  8. MySQLでGENERATED COLUMNを使ってCHECK制約をエミュレートする方法

    MySQLは参照整合性を確保するための外部キー(FOREIGN KEY)をサポートしていますが、CHECK制約はサポートしていません。ただし、トリガーやGENERATED COLUMN(生成カラム)を活用することで、CHECK制約と同等の動作を実現できます。本記事では、GENERATED COLUMNを使った方法を具体例とともに解説します。例:登録番号の形式を検証する「car」というテーブルがあり、登録番号は「英字2文字-数字3桁-英字2文字」という固定形式に従うものとします。mysql> Create table car2 (number char(9)); Query OK, 0 r

  9. MySQLのDATEDIFF関数で2つの日付間の日数(営業日)を求める方法

    MySQLのDATEDIFF関数とはMySQLでは、DATEDIFF(expr1, expr2)関数を使うことで、指定した2つの日付の差を日数として簡単に求めることができます。この関数は「expr1 − expr2」の日数を返すため、期間の計算に非常に便利です。基本構文DATEDIFF(日付1, 日付2)引数にはDATE型または日付として解釈できる文字列を指定します。使用例:2つの日付間の日数を計算する例えば、「2017-05-27」と「2017-05-23」の間の日数を求めたい場合は、以下のようなクエリを実行します。mysql> Select DATEDIFF(2017-05-27,2

  10. MySQLで指定した2つの日付間の完全な24時間の日数を計算する方法

    DATEDIFF()とTIMESTAMPDIFF()の違いMySQLのDATEDIFF()関数は、値のうち日付部分のみを計算の対象とします。そのため、時刻まで考慮した「完全な24時間」単位の日数を求めたい場合には、TIMESTAMPDIFF()関数を使用する必要があります。TIMESTAMPDIFF()関数は、第1引数に時間の単位(DAY、HOUR、MINUTEなど)、第2引数に開始日時、第3引数に終了日時を指定します。戻り値として、指定した単位で測定された2つの日時の差が整数で返されます。TIMESTAMPDIFF()を使った計算例例えば、「2017-05-27 11:59:00」と「201

  11. 【MySQL】月や日がゼロの日付(例:2017-00-00)を保存する方法

    MySQLでは、通常「月」や「日」がゼロになる日付は無効な値として扱われ、そのままINSERT文を実行するとエラーが発生してしまいます。しかし、SQLモードをALLOW_INVALID_DATESに設定することで、このような特殊な日付もテーブルに保存できるようになります。 本記事では、「年のみ有効で月と日の両方がゼロ」「月だけがゼロ」「日だけがゼロ」といった3パターンの日付を保存する具体的な手順を、実行例とともに解説します。 1. SQLモードをALLOW_INVALID_DATESに変更する まず、以下のSET文を実行して、現在のセッションのSQLモードを変更します。 mysql>

  12. MySQLのYEAR(2)とYEAR(4)の違いは何?年データの格納形式をわかりやすく解説

    MySQLのYEAR型には、年を2桁で格納するYEAR(2)と、4桁で格納するYEAR(4)の2種類があります。本記事では、それぞれの特徴や指定できる範囲の違い、そして2桁形式に潜む落とし穴について詳しく解説します。YEAR(2):2桁形式で年を格納するYEAR(2)は、年を2桁の数値として保存する形式です。たとえば、1969年を「69」と記述して保存できます。指定できる範囲は1970年から2069年まで(「70」~「69」で表現)です。YEAR(4):4桁形式で年を格納するYEAR(4)は、年を4桁の数値として保存する形式です。たとえば、1969年ならそのまま「1969」と記述します。指定で

  13. データベースとは?MySQLを使うメリットをわかりやすく解説

    データベースとはデータベースとは、データの集合を保存するための独立したアプリケーションです。各データベースには、データの作成・アクセス・管理・検索・複製を行うためのAPIが1つ以上用意されています。ファイルシステム上のファイルやメモリ内の大型ハッシュテーブルなど、ほかの種類のデータストアも利用できますが、こうした方式ではデータの読み書きが高速かつ簡単に行えるとは限りません。現在では、膨大なデータを保存・管理するためにリレーショナルデータベース管理システム(RDBMS)が広く使われています。「リレーショナル(関係型)」と呼ばれるのは、すべてのデータが複数のテーブルに分けて格納され、主キーや外部キ

  14. 【MySQL】別のデータベースにあるテーブルの制約を確認する方法

    MySQLでは、現在接続しているデータベース以外に保存されているテーブルに適用された制約を確認したい場合、SHOW CREATE TABLEステートメントを使用します。このステートメントを実行すると、対象テーブルの制約(PRIMARY KEY、FOREIGN KEYなど)だけでなく、テーブル作成時のCREATE TABLE文そのものも取得できるため、テーブル構造を把握するのに非常に便利です。 基本構文 SHOW CREATE TABLE db_name.table_name; 各項目の意味は以下のとおりです。 table_name:制約を確認したいテーブルの名前 db_name:そのテーブル

  15. MySQLでサポートされている日付・時刻データ型は5種類!それぞれの特徴と使い分けを解説

    MySQLでは、日付や時刻を扱うために5種類のデータ型が用意されています。それぞれ保存できる範囲や形式が異なるため、用途に応じて適切な型を選ぶことが重要です。ここでは、各データ型の特徴と具体例をわかりやすく解説します。 1. DATE(日付) 日付のみを保存するデータ型です。扱える範囲は 1000-01-01 ~ 9999-12-31 で、デフォルトの形式は「YYYY-MM-DD」です。 例:1984年1月17日は「1984-01-17」として保存されます。 2. DATETIME(日付+時刻) 日付と時刻の両方を保存できるデータ型です。扱える範囲は 1000-01-01 00:00:00

  16. MySQLのDEFAULT制約とは?テーブル作成時に列へ適用する方法をわかりやすく解説

    DEFAULT制約(デフォルト制約)は、MySQLのテーブルにおける特定の列にデフォルト値を設定するために使用されます。この制約が適用された列に対してINSERT文で値が指定されなかった場合、自動的に設定されたデフォルト値が格納される仕組みです。DEFAULT制約の基本構文DEFAULT default_valueここで「default_value」には、対象の列に設定したいデフォルト値を指定します。テーブル作成時にDEFAULT制約を適用する例以下のクエリでは、「workers」という名前のテーブルを作成し、id列にデフォルト値として1000を設定しています。mysql> Create

  17. MySQLのDATE型に時刻を保存できないのはなぜ?DATETIME・TIMESTAMPとの違いを解説

    MySQLのDATEデータ型のデフォルト形式は「YYYY-MM-DD」です。この形式には時刻(時間)の情報を格納する仕組みがないため、DATEデータ型は日付のみを扱うことができ、時刻値と組み合わせて使用することはできません。DATE関数を使った具体例以下の例を見ると分かるように、MySQLでは日付と一緒に時刻を渡しても、返されるのは日付の部分だけです。mysql> select DATE(2017-09-25 09:34:21); +-----------------------------------+ | DATE(2017-09-25 09:34:21) | +----

  18. MySQLで日付を指定してレコードを検索する方法を徹底解説

    MySQLでは、テーブルに保存された日付(DATE型・DATETIME型)を条件にすることで、特定の日に行われたレコードを簡単に抽出できます。本記事では、具体的なサンプルテーブルを使いながら、日付によるレコード検索の基本と、日時が含まれる場合の検索方法をわかりやすく解説します。 サンプルテーブルの準備 ここでは、「ProductName(商品名)」「Quantity(数量)」「OrderDate(注文日)」という3つのカラムを持つ「Order123」というテーブルを例に説明します。テーブルの中身は以下のとおりです。 mysql> Select * from Order123; +---

  19. MySQLのAUTO_INCREMENTとは?列への自動採番の設定方法と使い方

    AUTO_INCREMENT(自動増分)とは、指定した列に対して値を自動的に割り当てるMySQLの機能です。通常、主キーとなるID列に設定し、レコードを挿入するたびに1ずつ増加する連番が自動的に振られます。AUTO_INCREMENT付きテーブルの作成例ここでは、その動作を説明するために「employees」テーブルを作成しました。以下のようにSHOW CREATE TABLE文でテーブル定義を確認できます。mysql> SHOW CREATE TABLE employees\G *************************** 1. row ******************

  20. MySQLのDATETIME型とTIMESTAMP型の違いとは?特徴と使い分けを徹底解説

    DATETIME型とTIMESTAMP型は、どちらも「YYYY-MM-DD HH:MM:SS」という形式で日付と時刻の両方を格納できるデータ型です。よく似ていますが、実際にはいくつかの重要な違いがあります。ここでは、それぞれの特徴を詳しく見ていきましょう。 DATETIME型とTIMESTAMP型の主な違い 1. 格納できる範囲 DATETIME型:「1000-01-01 00:00:00」から「9999-12-31 23:59:59」までの広い範囲の日付・時刻を扱えます。 TIMESTAMP型:「1970-01-01 00:00:01」から「2038-01-19 08:44:07」(UT

Total 4564 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:226/229  20-コンピューター/Page Goto:1 220 221 222 223 224 225 226 227 228 229