Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mencipta Objek Tarikh dari Medan Tahun, Bulan dan Hari yang Berasingan dalam MySQL?

Bagaimanakah Saya Boleh Mencipta Objek Tarikh dari Medan Tahun, Bulan dan Hari yang Berasingan dalam MySQL?

Linda Hamilton
Lepaskan: 2025-01-04 22:53:44
asal
373 orang telah melayarinya

How Can I Create Date Objects from Separate Year, Month, and Day Fields in MySQL?

Mencipta Objek Tarikh daripada Medan Tarikh Berbeza dalam MySQL

Kesukaran anda, di mana perwakilan tarikh skema pangkalan data dibahagikan kepada hari, bulan, dan medan tahun, memberikan cabaran unik untuk manipulasi tarikh dalam SQL. Walau bagaimanapun, menggunakan pendekatan berikut, anda boleh membina objek tarikh dengan berkesan daripada medan berasingan ini.

Untuk mencipta objek DATETIME daripada nilai integer yang mewakili tahun, bulan dan hari, gunakan gabungan MAKEDATE() dan DATE_ADD( ) fungsi.

  1. MAKEDATE(): Fungsi ini menggabungkan tahun dan bulan (dengan hari tetap 1) untuk menghasilkan objek DATETIME yang mewakili hari pertama tahun yang ditentukan.
  2. DATE_ADD(): Fungsi ini menambah bilangan bulan dan hari yang ditentukan (atau selang masa lain yang ditentukan) kepada objek DATETIME yang diberikan.

Dengan menggabungkan fungsi ini, anda boleh membina tarikh secara beransur-ansur:

  • Mulakan dengan MAKEDATE() untuk mendapatkan objek DATETIME untuk hari pertama dalam setahun.
  • Gunakan DATE_ADD() untuk menambah bulan (tolak 1 untuk mengambil kiranya perwakilan integer bermula pada 1).
  • Gunakan DATE_ADD() lain untuk menambah hari (sekali lagi, tolak 1 untuk melaraskan sifat integernya).

Contoh:

SELECT DATE_ADD(DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH), INTERVAL (11)-1 DAY);
Salin selepas log masuk

Pertanyaan ini mengembalikan objek DATETIME untuk 11 Mac 2013.

Kini, anda boleh menggunakan teknik ini untuk membina julat tarikh sebagai perbandingan dalam SQL anda pertanyaan:

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 mendapatkan semula semua rekod daripada jadual tarikh dengan tarikh jatuh antara 1 Januari 2013 dan 1 Januari 2014.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Objek Tarikh dari Medan Tahun, Bulan dan Hari yang Berasingan dalam MySQL?. 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