Προς το περιεχόμενο

MySQL: εντοπισμός γραμμών που έχουν λήξει (unix timestamps) σε σχέση με column που έχει τις days


philos

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Έχουμε έναν πίνακα table με τα εξής columns

days1 (int)

days2 (int)

date (unix timestamp)

 

Ας πούμε ότι μια γραμμή μπορεί να έχει τις εξής τιμές:

days1 = 3

days2 = 5

date = 1669627713 (Nov 28 2022 09:28:33)

Θέλω να εντοπίσω τις γραμμές που έχουν λήξει, που λήξει σημαίνει ότι το άθροισμα days1 + days2 έχει ξεπεράσει την ημερομηνία του date σε σχέση με το NOW()/ time() στην php.

Δε ξέρω πως αλλιώς να το εξηγήσω, αλλά ας πούμε για την παραπάνω γραμμή, έχει λήξει αφού η σημερινή ημερομηνία Dec 28 είναι 30 μέρες μετά την date (η οποία είναι Nov 28), ενώ το άθροισμα είναι 5 + 3 = 8. Αφού 30 > 8 τότε θεωρείται ληγμένη γραμμή και θέλω να την εντοπίσω.

Καμιά ιδέα για τη σύνταξη της WHERE; :)

Επεξ/σία από philos
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Δε θα μπορούσες να κάνεις κάτι τέτοιο (στο περίπου, δεν το δοκίμασα);

SELECT field1, field2 FROM table WHERE (date + ((days1 + days2) * 86400)) < UNIX_TIMESTAMP(NOW())

Ρίξε επιπλέον και μια ματιά εδώ.

EDIT: Εναλλακτικά υπάρχει και η DATEDIFF.

 

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...