2013-08-01 19 views
25

Teraz znalazłem wiele podobnych pytań SO, w tym mój stary, ale staram się uzyskać jakikolwiek rekord starsze niż 30 dni, ale moje pole tabeli jest unix_timestamp. Wszystkie inne przykłady wydają się używać pól DateTime lub czegoś podobnego. Próbowałem niektórych i nie mogłem ich zmusić do pracy.SQL Uzyskaj wszystkie rekordy starsze niż 30 dni

To zdecydowanie nie działa poniżej. Ponadto nie chcę daty między datą, chcę, aby wszystkie rekordy po 30 dniach z uniksowego znacznika czasu przechowywane w bazie danych. Próbuję przycinać nieaktywnych użytkowników.

proste przykłady .. nie działa.

SELECT * from profiles WHERE last_login < UNIX_TIMESTAMP(NOW(), INTERVAL 30 DAY) 

i próbowała to

SELECT * from profiles WHERE UNIX_TIMESTAMP(last_login - INTERVAL 30 DAY) 

Niezbyt silny w złożonych data zapytaniami. Każda pomoc jest doceniana.

Mimo że pytanie zostało zaakceptowane. Nie lubię wyzwalać szczęśliwych ludzi zamykających pytanie jako duplikat. Nie jest to duplikat, ponieważ nie pytałem, jaka jest alternatywa dla funkcji mysql. ZAPYTAŁEM DOKŁADNIE, jak uzyskać zapisy starsze niż 30 dni, a to zduplikowane pytanie nie odpowiada ani nawet nie pokazuje mi, jak je uzyskać. Myślę, że ludzie muszą przeczytać pytania.

+0

Czy Postgresql ma nawet funkcję UNIX_TIMESTAMP? –

+0

Nie jestem pewien .. to może być powód, dla którego nie działa .. lol –

Odpowiedz

50

Spróbuj czegoś takiego:

SELECT * from profiles WHERE to_timestamp(last_login) < NOW() - INTERVAL '30 days' 

cytat z podręcznika:

jedno- funkcja argumentu to_timestamp jest również dostępna; akceptuje argument podwójnej precyzji i konwertuje z epoki Unix (sekundy od 1970-01-01 00: 00: 00 + 00) na znacznik czasu ze strefą czasową. (Epok Integer Unix są niejawnie rzutować na podwójnej precyzji.)

+0

Naprawdę mam to do pracy przy użyciu '

+0

Dobrze byłoby podać bezpośredni link do źródła, do określonej części instrukcji. – Relequestual

11

ile Tęskniłam za coś, co powinno być dość proste:

SELECT * FROM profiles WHERE last_login < NOW() - INTERVAL '30 days'; 
+0

Nie ... powoduje błąd odlewania. –

+0

@Pjack: ah, więc coś przeoczyłem. Jaki jest typ kolumny "last_login'? Przyjąłem, że to "TIMESTAMP", którego oczywiście nie ma. –

+0

Kolumna jest bigintem –

Powiązane problemy