|
| MySQL Timestamp Fra : Chris |
Dato : 16-02-05 12:15 |
|
Hej
Jeg har i en MySQL db et timestamp felt som jeg bruger i en log tabel.
Jeg vil gerne GROUP'e posterne på dage så jeg kan se statistik over hvor
mange hits jeg har har haft de enkelte dage (eller uger og år for den
sags skyld). Kan man konstruere en SQl sætning som grupperer på dage ud
fra et timestamp i MySQL (PHP)?
Venlig hilsen
Chris
| |
Thomas Skou (17-02-2005)
| Kommentar Fra : Thomas Skou |
Dato : 17-02-05 08:40 |
|
> Jeg har i en MySQL db et timestamp felt som jeg bruger i en log tabel.
> Jeg vil gerne GROUP'e posterne på dage så jeg kan se statistik over hvor
> mange hits jeg har har haft de enkelte dage (eller uger og år for den
> sags skyld). Kan man konstruere en SQl sætning som grupperer på dage ud
> fra et timestamp i MySQL (PHP)?
Ja:
SELECT
COUNT(felt),
YEAR(FROM_UNIXTIME(felt_med_timestamp)),
MONTH(FROM_UNIXTIME(felt_med_timestamp)),
DAYOFMONTH(FROM_UNIXTIME(felt_med_timestamp))
FROM
log_tabel
GROUP BY
YEAR(FROM_UNIXTIME(felt_med_timestamp)),
MONTH(FROM_UNIXTIME(felt_med_timestamp)),
DAYOFMONTH(FROM_UNIXTIME(felt_med_timestamp));
/Thomas
| |
Chris (19-02-2005)
| Kommentar Fra : Chris |
Dato : 19-02-05 18:29 |
|
Thomas Skou wrote:
>
>> Jeg har i en MySQL db et timestamp felt som jeg bruger i en log tabel.
>> Jeg vil gerne GROUP'e posterne på dage så jeg kan se statistik over
>> hvor mange hits jeg har har haft de enkelte dage (eller uger og år for
>> den sags skyld). Kan man konstruere en SQl sætning som grupperer på
>> dage ud fra et timestamp i MySQL (PHP)?
>
>
> Ja:
>
> SELECT
> COUNT(felt),
> YEAR(FROM_UNIXTIME(felt_med_timestamp)),
> MONTH(FROM_UNIXTIME(felt_med_timestamp)),
> DAYOFMONTH(FROM_UNIXTIME(felt_med_timestamp))
>
> FROM
> log_tabel
>
> GROUP BY
> YEAR(FROM_UNIXTIME(felt_med_timestamp)),
> MONTH(FROM_UNIXTIME(felt_med_timestamp)),
> DAYOFMONTH(FROM_UNIXTIME(felt_med_timestamp));
>
>
> /Thomas
Tak for svaret! Det virker fint på Linux/Apache/MySQL men på
Windows/IIS/MySQL får jeg nogle mærkelige årstal fra 1988 til 2011
selvom jeg ved at mine timestamps alle ligger fra 2004 til 2005. Findes
der en tilsvarende statement hertil?
/Chris
| |
Troels Arvin (19-02-2005)
| Kommentar Fra : Troels Arvin |
Dato : 19-02-05 18:35 |
|
On Sat, 19 Feb 2005 18:28:50 +0100, Chris wrote:
> Det virker fint på Linux/Apache/MySQL men på
> Windows/IIS/MySQL får jeg nogle mærkelige årstal fra 1988 til 2011
> selvom jeg ved at mine timestamps alle ligger fra 2004 til 2005.
Det lyder som en ret grim fejl i enten MySQL eller PHP. Hvordan ser du
forskellene? - Via MySQL's kommandolinje-værktøj, via PHP, eller på
anden vis?
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
Chris (21-02-2005)
| Kommentar Fra : Chris |
Dato : 21-02-05 00:15 |
|
Troels Arvin wrote:
>
> Det lyder som en ret grim fejl i enten MySQL eller PHP. Hvordan ser du
> forskellene? - Via MySQL's kommandolinje-værktøj, via PHP, eller på
> anden vis?
>
Jeg brugte MySQL-Front vers. 2.5
/Chris
| |
Troels Arvin (19-02-2005)
| Kommentar Fra : Troels Arvin |
Dato : 19-02-05 18:32 |
|
On Thu, 17 Feb 2005 08:39:57 +0100, Thomas Skou wrote:
>> Kan man konstruere en SQl sætning som grupperer på dage ud
>> fra et timestamp i MySQL (PHP)?
>
> Ja:
>
> SELECT
> COUNT(felt),
> YEAR(FROM_UNIXTIME(felt_med_timestamp)),
> MONTH(FROM_UNIXTIME(felt_med_timestamp)),
> DAYOFMONTH(FROM_UNIXTIME(felt_med_timestamp))
[...]
Hvorfor skyder du FROM_UNIXTIME ind mellem fx. YEAR og felt_med_timestamp?
Kan YEAR ikke hitte ud af at hive YEAR-værdier direkte fra
datetime-værdier?
--
Greetings from Troels Arvin, Copenhagen, Denmark
| |
Thomas Skou (20-02-2005)
| Kommentar Fra : Thomas Skou |
Dato : 20-02-05 12:29 |
|
>>SELECT
>> COUNT(felt),
>> YEAR(FROM_UNIXTIME(felt_med_timestamp)),
>> MONTH(FROM_UNIXTIME(felt_med_timestamp)),
>> DAYOFMONTH(FROM_UNIXTIME(felt_med_timestamp))
>
>
> [...]
>
> Hvorfor skyder du FROM_UNIXTIME ind mellem fx. YEAR og felt_med_timestamp?
> Kan YEAR ikke hitte ud af at hive YEAR-værdier direkte fra
> datetime-værdier?
>
Jeg antog (fejlagtigt) at feltet indeholdt et unix timestamp. Hvis
felttypen er et MySQL timestamp kan datoberegninger foretages direkte
fra feltet fx: YEAR(felt_med_mysql_timestamp).
/Thomas
| |
|
|