Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membina Tarikh dalam MySQL dari Medan Hari, Bulan dan Tahun yang Berasingan?

Bagaimana untuk Membina Tarikh dalam MySQL dari Medan Hari, Bulan dan Tahun yang Berasingan?

Linda Hamilton
Lepaskan: 2024-12-25 07:46:54
asal
292 orang telah melayarinya

How to Construct a Date in MySQL from Separate Day, Month, and Year Fields?

Mencipta Tarikh daripada Medan Hari, Bulan dan Tahun Individu dalam MySQL

Dalam aplikasi pangkalan data, keperluan sering timbul untuk membina tarikh dari medan hari, bulan dan tahun yang berasingan untuk perbandingan atau pemprosesan lain. Ini menjadi sangat relevan apabila skema pangkalan data diwarisi daripada reka bentuk sebelumnya yang memilih untuk menyimpan komponen tarikh dalam cara yang tidak standard.

Pernyataan Masalah (Disemak)

Soalan ini berkaitan dengan mencipta objek tarikh dalam SQL daripada jadual dengan medan individu untuk 'hari,' 'bulan' dan 'tahun' dan bukannya medan tarikh disatukan. Objektifnya adalah untuk membandingkan tarikh ini dengan julat input pengguna menggunakan klausa BETWEEN.

Skema Pangkalan Data

Berikut ialah skema yang disediakan untuk jadual 'tarikh':

CREATE TABLE IF NOT EXISTS `date` (
  `deposition_id` varchar(11) NOT NULL default '',
  `day` int(2) default NULL,
  `month` int(2) default NULL,
  `year` int(4) default NULL,
  PRIMARY KEY  (`deposition_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Salin selepas log masuk

Penyelesaian

Untuk mencipta objek tarikh daripada komponen individu ini, logik SQL berikut boleh digunakan:

  1. Bina Tarikh dari Tahun dan Bulan: Gunakan fungsi MAKEDATE() dengan hari tetap 1 untuk mendapatkan DATETIME mewakili hari pertama tahun dan bulan yang dinyatakan.
  2. Laraskan Tarikh dengan Bulan dan Hari: Gunakan fungsi DATE_ADD() untuk menambah nilai bulan dan hari mengikut masa tarikh awal.

Contoh Pertanyaan

Untuk memilih semua baris dalam jadual 'tarikh' di mana tarikh yang dibina berada dalam satu titik tertentu julat:

SELECT * FROM `date`
WHERE DATE_ADD(DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH), INTERVAL (day)-1 DAY)
BETWEEN '2013-01-01' AND '2014-01-01';
Salin selepas log masuk

Pertanyaan ini akan mengembalikan semua baris dengan tarikh gabungan yang dibina daripada medan individu adalah antara dua tarikh yang disediakan.

Atas ialah kandungan terperinci Bagaimana untuk Membina Tarikh dalam MySQL dari Medan Hari, Bulan dan Tahun yang Berasingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan