🧚 Άκου! Το Beekeeper Studio είναι ένα γρήγορο, σύγχρονο και open source GUI για βάσεις δεδομένων Λήψη
2 Ιουλίου 2025 Από τον Matthew Rathbone

Για να εισαγάγεις μια ημερομηνία σε SQL, γράψ' την στο INSERT ως string 'YYYY-MM-DD' ή χρησιμοποίησε μια συνάρτηση όπως η CURRENT_DATE για τη σημερινή ημερομηνία. Τα παραδείγματα λειτουργούν σε PostgreSQL, MySQL, SQLite και SQL Server.

Πώς να εισαγάγεις ημερομηνία σε SQL

Γράψε την ημερομηνία ως string σε μορφή 'YYYY-MM-DD'. Όταν η στήλη είναι τύπου ημερομηνίας, η βάση δεδομένων μετατρέπει το string σε ημερομηνία:

INSERT INTO table_name (date_column) VALUES ('YYYY-MM-DD');
INSERT INTO orders (order_id, customer, order_date)
VALUES (2, 'Tom', '2021-06-15');

Για στήλη TIMESTAMP ή DATETIME, πρόσθεσε την ώρα μετά από ένα κενό, σε 24ωρη μορφή:

INSERT INTO flights (flight_no, departs_at)
VALUES ('UA 940', '2026-11-02 17:45:00');
-- In SQL Server, make departs_at a DATETIME2: its TIMESTAMP type isn't a date

Για τη σημερινή ημερομηνία, βάλε CURRENT_DATE στη θέση του string, χωρίς εισαγωγικά. Το CURRENT_TIMESTAMP δίνει ημερομηνία και ώρα:

INSERT INTO orders (order_id, customer, order_date)
VALUES (3, 'Priya', CURRENT_DATE);
-- In SQL Server, use CAST(GETDATE() AS DATE): it has no CURRENT_DATE

-- Output (the new row, run on 2026-10-13):
-- order_id | customer | order_date
-- ---------+----------+-----------
-- 3        | Priya    | 2026-10-13

Κανόνες που πρέπει να ξέρεις

  • Μείνε στο 'YYYY-MM-DD'. Οι άλλες μορφές εξαρτώνται από τις ρυθμίσεις της βάσης. Οι PostgreSQL και SQL Server διαβάζουν το '06/15/2021' ως μήνα/ημέρα/έτος, ενώ η MySQL το απορρίπτει:
INSERT INTO orders (order_id, customer, order_date) VALUES (4, 'Ana', '06/15/2021');
-- MySQL: ERROR 1292 (22007): Incorrect date value: '06/15/2021' for column 'order_date' at row 1
  • Η SQLite δεν ελέγχει τις ημερομηνίες. Δεν έχει τύπο ημερομηνίας και αποθηκεύει όποιο κείμενο της δώσεις. Οι συναρτήσεις ημερομηνίας της δεν διαβάζουν το '06/15/2021' και μετατρέπουν το '2021-02-30' σε 2021-03-02.
  • Το TIMESTAMP της MySQL καλύπτει μόνο από το 1970 έως το 2038. Χρησιμοποίησε DATETIME για γενέθλια, ιστορικές ημερομηνίες και ό,τι βρίσκεται μακριά στο μέλλον:
-- MySQL
CREATE TABLE people (name VARCHAR(50), born_at TIMESTAMP);
INSERT INTO people (name, born_at) VALUES ('Ada Lovelace', '1815-12-10 00:00:00');
-- ERROR 1292 (22007): Incorrect datetime value: '1815-12-10 00:00:00' for column 'born_at' at row 1
  • Το «τώρα» είναι στη ζώνη ώρας της βάσης (πάντα UTC στη SQLite). Αν οι χρήστες σου βρίσκονται σε πολλές ζώνες ώρας, αποθήκευε σε UTC.

Εναλλακτική σύνταξη

Θα συναντήσεις επίσης τα δικά ονόματα κάθε βάσης για το «σήμερα» και το «τώρα»:

  • MySQL: CURDATE() και NOW(). Η PostgreSQL έχει κι αυτή NOW().
  • SQLite: date('now') και datetime('now').
  • SQL Server: CAST(GETDATE() AS DATE) και GETDATE(). Δεν έχει CURRENT_DATE, οπότε για τη σημερινή ημερομηνία χρειάζεται το cast.

Πότε χρειάζεται να εισαγάγεις ημερομηνία;

Οι περισσότερες εισαγωγές ημερομηνιών είναι μία από αυτές τις πέντε δουλειές, και η καθεμία έχει το δικό της εργαλείο.

Καταγραφή μιας γνωστής ημερομηνίας

Γενέθλια, προθεσμίες και ραντεβού προέρχονται από ένα άτομο ή μια φόρμα. Γράψ' τα ως strings 'YYYY-MM-DD'.

Σήμανση με τη σημερινή ημερομηνία ή την τρέχουσα ώρα

Οι ημερομηνίες παραγγελιών, εγγραφών και τα audit logs πρέπει να προέρχονται από το ρολόι της βάσης, όχι από μια τιμή που πληκτρολόγησε κάποιος. Χρησιμοποίησε CURRENT_DATE ή CURRENT_TIMESTAMP (GETDATE() στον SQL Server) ή όρισέ τα ως προεπιλογή της στήλης.

Αποθήκευση ώρας μαζί με ημερομηνία

Συναντήσεις, πτήσεις και εγγραφές log χρειάζονται και την ώρα. Χρησιμοποίησε στήλη DATETIME ή TIMESTAMP και γράψε 'YYYY-MM-DD HH:MM:SS'.

Υπολογισμός ημερομηνίας από μια άλλη

Προθεσμίες, ανανεώσεις και υπενθυμίσεις πέφτουν ορισμένο χρόνο μετά από μια άλλη ημερομηνία. Άφησε τη βάση να κάνει τους υπολογισμούς: + INTERVAL σε PostgreSQL και MySQL, DATEADD() στον SQL Server και date() με modifier στη SQLite.

Φόρτωση ημερομηνιών σε άλλη μορφή

Τα spreadsheets και τα CSV exports συχνά περιέχουν ημερομηνίες όπως 06/15/2021. Μετάτρεψέ τες κατά την εισαγωγή: STR_TO_DATE() στη MySQL, TO_DATE() στην PostgreSQL και CONVERT() με αριθμό style στον SQL Server. Η SQLite δεν μπορεί να αναλύσει άλλες μορφές, οπότε αναδιάταξε το κείμενο με substr().

Πραγματικά παραδείγματα εισαγωγής ημερομηνιών

Πρόσθεσε πολλές ημερομηνίες με μία εντολή

Μια λίστα αργιών μπαίνει με ένα INSERT και μία γραμμή τιμών ανά ημερομηνία:

INSERT INTO holidays (holiday_name, holiday_date)
VALUES
  ('Independence Day', '2026-07-04'),
  ('Thanksgiving', '2026-11-26'),
  ('Christmas Day', '2026-12-25');

Συμπλήρωσε τη σημερινή ημερομηνία με προεπιλογή

Δώσε στη στήλη μια προεπιλογή και κάθε INSERT που την παραλείπει παίρνει τη σημερινή ημερομηνία. Η MySQL θέλει παρενθέσεις γύρω από το CURRENT_DATE:

CREATE TABLE orders (
  order_id INT,
  customer_id INT,
  order_date DATE DEFAULT (CURRENT_DATE)  -- SQL Server: DEFAULT CAST(GETDATE() AS DATE)
);

INSERT INTO orders (order_id, customer_id) VALUES (1, 42);

-- Output (the new row, run on 2026-10-13):
-- order_id | customer_id | order_date
-- ---------+-------------+-----------
-- 1        | 42          | 2026-10-13

Αποθήκευσε μια τοπική ώρα συνάντησης σε UTC

Κάποιος στη Νέα Υόρκη κλείνει μια συνάντηση για τις 9:30 π.μ. τοπική ώρα. Μετάτρεψέ τη σε UTC κατά την εισαγωγή, ώστε οι ώρες όλων να ταιριάζουν:

INSERT INTO meetings (title, starts_at_utc)
VALUES ('Design review', TIMESTAMP '2026-10-20 09:30:00' AT TIME ZONE 'America/New_York' AT TIME ZONE 'UTC');
-- MySQL (once its time zone tables are loaded):
--   CONVERT_TZ('2026-10-20 09:30:00', 'America/New_York', 'UTC')
-- SQL Server:
--   CAST('2026-10-20 09:30:00' AS DATETIME2) AT TIME ZONE 'Eastern Standard Time' AT TIME ZONE 'UTC'

-- Output (the new row):
-- title         | starts_at_utc
-- --------------+--------------------
-- Design review | 2026-10-20 13:30:00

Η SQLite δεν έχει ονομασμένες ζώνες ώρας, οπότε κάνε τη μετατροπή στην εφαρμογή σου πριν την εισαγωγή.

Όρισε ημερομηνία ανανέωσης έναν μήνα μετά

Μια συνδρομή ανανεώνεται έναν μήνα μετά την έναρξή της. Υπολόγισε την ημερομηνία ανανέωσης μέσα στο INSERT:

INSERT INTO subscriptions (customer, started_on, renews_on)
VALUES ('Tom', '2026-10-13', DATE '2026-10-13' + INTERVAL '1' MONTH);
-- SQL Server: DATEADD(month, 1, '2026-10-13')
-- SQLite:     date('2026-10-13', '+1 month')

-- Output (the new row):
-- customer | started_on | renews_on
-- ---------+------------+-----------
-- Tom      | 2026-10-13 | 2026-11-13

Πρόσεχε το τέλος του μήνα στη SQLite. Από τις 31 Ιανουαρίου ξεχειλίζει στον Μάρτιο, ενώ οι άλλες βάσεις σταματούν στις 28 Φεβρουαρίου:

SELECT date('2026-01-31', '+1 month');
-- Output: 2026-03-03

Εισαγωγή ημερομηνιών ημέρα/μήνας/έτος

Ένας προμηθευτής στέλνει τιμολόγια με ημερομηνίες βρετανικού τύπου, 15/06/2021. Πες στη βάση τη μορφή κατά την εισαγωγή:

INSERT INTO invoices (invoice_no, issued_on)
VALUES ('INV-1002', TO_DATE('15/06/2021', 'DD/MM/YYYY'));
-- MySQL:      STR_TO_DATE('15/06/2021', '%d/%m/%Y')
-- SQL Server: CONVERT(date, '15/06/2021', 103), where style 103 is dd/mm/yyyy
-- SQLite can't parse dates: rearrange the text with substr()

-- Output (the new row):
-- invoice_no | issued_on
-- -----------+-----------
-- INV-1002   | 2021-06-15

Περισσότερα για την εισαγωγή ημερομηνιών

Σε αυτό το blog:

Επίσημη τεκμηρίωση:

Το Beekeeper Studio είναι ένα δωρεάν & open source GUI για βάσεις δεδομένων

Το καλύτερο εργαλείο για SQL queries & επεξεργασία που έχω χρησιμοποιήσει ποτέ. Μου δίνει ό,τι χρειάζομαι για να διαχειρίζομαι τη βάση δεδομένων μου. - ⭐⭐⭐⭐⭐ Mit

Το Beekeeper Studio είναι γρήγορο, εύχρηστο και κατανοητό με την πρώτη ματιά. Υποστηρίζει πάρα πολλές βάσεις δεδομένων και δουλεύει άψογα σε Windows, Mac και Linux.

Η έκδοση του Beekeeper για Linux έχει 100% όλες τις λειτουργίες, χωρίς εκπτώσεις και χωρίς συμβιβασμούς.

Τι λένε οι χρήστες για το Beekeeper Studio

★★★★★
«Το Beekeeper Studio αντικατέστησε εντελώς την παλιά μου ροή εργασίας με SQL. Είναι γρήγορο, εύχρηστο και κάνει τη δουλειά με βάσεις δεδομένων ξανά ευχάριστη.»
— Alex K., Database Developer
★★★★★
«Έχω δοκιμάσει πολλά GUI για βάσεις δεδομένων, αλλά το Beekeeper βρίσκει την τέλεια ισορροπία ανάμεσα σε δυνατότητες και απλότητα. Απλώς δουλεύει.»
— Sarah M., Full Stack Engineer

Έτοιμος να βελτιώσεις τη ροή εργασίας σου με SQL;

download Δωρεάν λήψη