Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Data w notacji liczbowej
Forum PHP.pl > Forum > Przedszkole
kilas88
Witam,

Mam zapisaną datę w następującym formacie:
  1. `data` int(11) NOT NULL


Przykładowo:
20100713 oznacza 2010-07-13

Niestety nie ja zaprojektowałem tą bazę danych, a jedynie wykonuję zlecenie polegające na rozbudowie bieżącego projektu o nową funkcjonalność.

Muszę od jakiejś daty odjąć ileśtam dni. Przykładowo: -60 dni. Jak to wykonać na poziomie SQL? Wiadomo, że nie mogę zrobić 20100713-60, więc jak inaczej, najwydajniej?

Szukam i kombinuję, wycinam poszczególne znaki ww. daty (1,4 - rok, etc). Czy mogę jakoś to lepiej rozegrać?
wookieb
1) Przekonwertuj ta kolumne na pole typu timestamp lub datetime
2) W mysql masz sporo funkcji do opercji na datach
date_add itd
google -> mysql datetime functions
kilas88
Cytat(wookieb @ 13.07.2010, 18:04:24 ) *
1) Przekonwertuj ta kolumne na pole typu timestamp lub datetime
2) W mysql masz sporo funkcji do opercji na datach
date_add itd
google -> mysql datetime functions

Chciałbym, ale nie mogę, dlatego wyżej wspomniałem, że rozbudowuję projekt po kimś innym (a projekt jest już na tyle rozbudowany, że koszta przebudowy będą dość spore). Badziewnie zapisane te dane.

Jak na razie zrobiłem (choć nie jest to zbyt satysfakcjonujące rozwiązanie):
  1. DATE_FORMAT(DATE_SUB(:prepare_date, INTERVAL :time_range DAY), '%Y%m%d') < i.DATA


:prepare_date = date("Y-m-d")
:time_range = jakaś liczba

Gdyby ktoś miał jakiś lepszy i wydajniejszy pomysł to proszę o rady.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.