webForumDet fria alternativet

Konstruera ett datum i MySQL

Databaser & SQL

8 svar · 599 visningar · startad av erciz

Medlem sedan maj 20011 826 inlägg
Frågan#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
Medlem 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.

Medlem 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. :(

Medlem sedan mars 20007 896 inlägg
#4
select
    week(concat(year('2007-05-12'), '-12-31'), [b]1[/b])
Medlem 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?

Medlem 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... ;)

Medlem 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.

Medlem 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.

Medlem 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.

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)