webForumDet fria alternativet

Konstruera ett datum i MySQL

8 svar · 597 visningar · startad av erciz

ercizMedlem sedan maj 20011 826 inlägg
#1

Tror att detta borde vara enkelt, men jag får inte till det och har testat en del olika datumfunktioner i MySQL-dokumentationen.

Hur konstruerar jag ett datum i MYSQL? Frågan i grund och botten är att jag vill veta vilket som är det högsta veckonumret på året, finns det nåt enklare sätt att få fram det så är jag tacksam.

Har försökt med detta, men det blir fel för jag får inte ha en sträng där:

YEARWEEK(YEAR(datetime)'-12-31') AS maxweek
ercizMedlem sedan maj 20011 826 inlägg
#2
YEARWEEK(DATE_FORMAT(datetime,'%Y-12-31')) AS maxweek

fungerade utmärkt!

Men det kan den förra koden också ha gjort, för jag strulade med tecknet ' i PHP.

ercizMedlem sedan maj 20011 826 inlägg
#3

Fast den koden tycks inte göra det jag vill göra. Få ut högsta veckonummer från ett visst år. :(

SPiNMedlem sedan mars 20007 896 inlägg
#4
select
    week(concat(year('2007-05-12'), '-12-31'), [b]1[/b])
ercizMedlem sedan maj 20011 826 inlägg
#5

SPiN skrev:

select
    week(concat(year('2007-05-12'), '-12-31'), 7)

Fast gör den verkligen det jag vill? Den sista december kan väl ligga i vecka 1, om det är en måndag, tisdag eller onsdag?

SPiNMedlem sedan mars 20007 896 inlägg
#6

Nej, då är det den 1 januari som ligger i sista veckan på året.

Såg att jag satte fel mode till week() dock, det är nu åtgärdat.

Edit,
Eller hmm. Det kanske du har rätt i, jag läste inte riktigt noga. Det här måste jag kolla upp... ;)

ercizMedlem sedan maj 20011 826 inlägg
#7

SPiN skrev:

Nej, då är det den 1 januari som ligger i sista veckan på året.

Såg att jag satte fel mode till week() dock, det är nu åtgärdat.

Edit,
Eller hmm. Det kanske du har rätt i, jag läste inte riktigt noga. Det här måste jag kolla upp... ;)

Jag tror att det blir fel. För i vårat kalendersystem är vecka 1 den första veckan på året med en torsdag. Det är ju vet vi säger med mode 3 till week.

ercizMedlem sedan maj 20011 826 inlägg
#8

Verkar som att YEARWEEK i MySQL är fel också. YEARWEEK('2009-12-31') returnerar '200952' istället för '200953' som borde vara det korrekta.

ercizMedlem sedan maj 20011 826 inlägg
#9

erciz skrev:

Verkar som att YEARWEEK i MySQL är fel också. YEARWEEK('2009-12-31') returnerar '200952' istället för '200953' som borde vara det korrekta.

EDIT: Inget fel på MySQL, nu var det jag som hade glömt mode 3 till YEARWEEK. YEARWEEK('2009-12-31', 3) funkar bättre.

Men problemet med att få ut högsta veckan ett visst år kvarstår, men jag kanske för lösa det i PHP, kan bli bra det med.

Ojdå, skulle editera, men det blev citering, sorry.

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)