[SQL] Veranderen naar now()
Ik heb voor mijn weblog en gastenboek in de database 2 kollommen gemaakt, namelijk datum en tijd. Voor beiden 2 kollommen dus. En nu lees ik overal dat als je NOW() gebruikt in de SQL query dit veel makkelijker is.
Nu moet ik dus 1 kolom verwijderen en de andere veranderen naar NOW(). Maar dan kom ik met mijn oude gegevens in de knoop. Hoe kan ik dit het beste oplossen? Of gewoon niet?
Format voor datum is bijv.: 13 april 2007
Format voor tijd is bijv.: 13:47:09
Groeten,
Marnix
Waarom gebruik je niet gewoon een datetime veld in je database ?
Dat doe ik dus niet omdat toen ik het maakte ik er nog niet van af wist. Maar ik wil het dus veranderen in iets simpelers vraag me af hoe dat makkelijk kan zonder al te veel werk. Ik heb geen zin om ongeveer 200 rijen aan te passen. :S
En zijn de huidige kolommen op dit moment dan een date en een time kolom ?
Nu begrijp ik dat NOW() en DATE/TIME een verschillend iets is?
Voor je probleem: SanThe heeft een goed begin gemaakt, en op zich is het ook niet zo moeilijk.
Maak dus eerst die derde kolom aan, en kijk hoe het datum formaat eruit moeten komen zien, dan maak je dus ff een scriptje wat de datums /tijden ophaalt, plak ze aan elkaar en voor dat in een derde kolom in.
Edit: moet ik dat derde veld dan een DATETIME veld maken?
Gewijzigd op 01/01/1970 01:00:00 door Marnix
Marnix schreef op 23.04.2007 20:31:
Hmmm dank je! Dat ga ik proberen!
Edit: moet ik dat derde veld dan een DATETIME veld maken?
Edit: moet ik dat derde veld dan een DATETIME veld maken?
Yap
Hoe ziet je huidige datum eruit?
Ik heb nu dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
include '../connect.php';
function replaceMaanden($value)
{
$value = str_replace("januari", "01", $value);
$value = str_replace("februari", "02", $value);
$value = str_replace("maart", "03", $value);
$value = str_replace("april", "04", $value);
$value = str_replace("mei", "05", $value);
$value = str_replace("juni", "06", $value);
$value = str_replace("juli", "07", $value);
$value = str_replace("augustus", "08", $value);
$value = str_replace("september", "09", $value);
$value = str_replace("oktober", "10", $value);
$value = str_replace("november", "11", $value);
$value = str_replace("december", "12", $value);
return $value;
}
$items = mysql_query("SELECT datum, tijd FROM weblog ORDER BY id DESC LIMIT 0,5");
while($item = mysql_fetch_array($items))
{
$datum = explode(" ", $item['datum']);
$datum[1] = replaceMaanden($datum[1]);
$datum = $datum[0] . "-" . $datum[1] . "-" . $datum[2];
$gegevens = $datum . " " . $item['tijd'];
$query = "UPDATE weblog SET test = '$gegevens' LIMIT 0,1";
echo $query . "<br />\n";
//mysql_query($query) or die( mysql_error() );
}
?>
include '../connect.php';
function replaceMaanden($value)
{
$value = str_replace("januari", "01", $value);
$value = str_replace("februari", "02", $value);
$value = str_replace("maart", "03", $value);
$value = str_replace("april", "04", $value);
$value = str_replace("mei", "05", $value);
$value = str_replace("juni", "06", $value);
$value = str_replace("juli", "07", $value);
$value = str_replace("augustus", "08", $value);
$value = str_replace("september", "09", $value);
$value = str_replace("oktober", "10", $value);
$value = str_replace("november", "11", $value);
$value = str_replace("december", "12", $value);
return $value;
}
$items = mysql_query("SELECT datum, tijd FROM weblog ORDER BY id DESC LIMIT 0,5");
while($item = mysql_fetch_array($items))
{
$datum = explode(" ", $item['datum']);
$datum[1] = replaceMaanden($datum[1]);
$datum = $datum[0] . "-" . $datum[1] . "-" . $datum[2];
$gegevens = $datum . " " . $item['tijd'];
$query = "UPDATE weblog SET test = '$gegevens' LIMIT 0,1";
echo $query . "<br />\n";
//mysql_query($query) or die( mysql_error() );
}
?>
En nee ik voer de query nog niet uit, 'k wil eerst alles dubbelchecken. :)
Maak iig even een dump van je DB van tevoren
Klaasjan Boven schreef op 23.04.2007 20:58:
Maak iig even een dump van je DB van tevoren
Dat was ik wel van plan ja. ;)
$datum = explode(" ", $item['datum']);
$datum[1] = replaceMaanden($datum[1]);
$datum = $datum[2] . "-" . $datum[1] . "-" . $datum[0];
$gegevens = $datum . " " . $item['tijd'];
San je hebt gelijk shame
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
Goed dat je het zegt! Bedankt. Testen is dus niet overbodig hè. :D
Als het goed is gebeurt er alleen wat met je nieuwe kolom dus het kan niet heel veel kwaad
Dom dom dom... zeker tijd om te stoppen zo. :D
Edit:
Ik post het script even voor diegenen die er baat bij hebben. Het werkt perfect!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
include '../connect.php';
function replaceMaanden($value)
{
$value = str_replace("januari", "01", $value);
$value = str_replace("februari", "02", $value);
$value = str_replace("maart", "03", $value);
$value = str_replace("april", "04", $value);
$value = str_replace("mei", "05", $value);
$value = str_replace("juni", "06", $value);
$value = str_replace("juli", "07", $value);
$value = str_replace("augustus", "08", $value);
$value = str_replace("september", "09", $value);
$value = str_replace("oktober", "10", $value);
$value = str_replace("november", "11", $value);
$value = str_replace("december", "12", $value);
return $value;
}
$items = mysql_query("SELECT id, datum, tijd FROM weblog ORDER BY id");
while($item = mysql_fetch_array($items))
{
$datum = explode(" ", $item['datum']);
$datum[1] = replaceMaanden($datum[1]);
if(strlen($datum[0]) == 1)
{
$datum[0] = "0" . $datum[0];
}
$datum = $datum[2] . "-" . $datum[1] . "-" . $datum[0];
$gegevens = $datum . " " . $item['tijd'];
$query = "UPDATE `weblog` SET `test` = '$gegevens' WHERE `id` = '" . $item['id'] . "' LIMIT 1";
$uitvoeren = mysql_query($query) or die( mysql_error() );
if($uitvoeren)
{
echo "<strong>" . $item['id'] . ".</strong> " . $query . " - Gelukt!<br />\n";
}
else
{
echo "Bij regel <strong>" . $item['id'] . "</strong> ging iets fout!<br />\n";
}
}
?>
include '../connect.php';
function replaceMaanden($value)
{
$value = str_replace("januari", "01", $value);
$value = str_replace("februari", "02", $value);
$value = str_replace("maart", "03", $value);
$value = str_replace("april", "04", $value);
$value = str_replace("mei", "05", $value);
$value = str_replace("juni", "06", $value);
$value = str_replace("juli", "07", $value);
$value = str_replace("augustus", "08", $value);
$value = str_replace("september", "09", $value);
$value = str_replace("oktober", "10", $value);
$value = str_replace("november", "11", $value);
$value = str_replace("december", "12", $value);
return $value;
}
$items = mysql_query("SELECT id, datum, tijd FROM weblog ORDER BY id");
while($item = mysql_fetch_array($items))
{
$datum = explode(" ", $item['datum']);
$datum[1] = replaceMaanden($datum[1]);
if(strlen($datum[0]) == 1)
{
$datum[0] = "0" . $datum[0];
}
$datum = $datum[2] . "-" . $datum[1] . "-" . $datum[0];
$gegevens = $datum . " " . $item['tijd'];
$query = "UPDATE `weblog` SET `test` = '$gegevens' WHERE `id` = '" . $item['id'] . "' LIMIT 1";
$uitvoeren = mysql_query($query) or die( mysql_error() );
if($uitvoeren)
{
echo "<strong>" . $item['id'] . ".</strong> " . $query . " - Gelukt!<br />\n";
}
else
{
echo "Bij regel <strong>" . $item['id'] . "</strong> ging iets fout!<br />\n";
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Marnix
dus iets als
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
"UPDATE jouwtabel
SET datum_tijd=
CONCAT(
SUBSTRING(datum FROM -4 FOR 4),
'-',
SUBSTRING(datum FROM 4 FOR(LOCATE ' ')),
'-',
'LEFT(datum, 2),
'-',
tijd
)"
SET datum_tijd=
CONCAT(
SUBSTRING(datum FROM -4 FOR 4),
'-',
SUBSTRING(datum FROM 4 FOR(LOCATE ' ')),
'-',
'LEFT(datum, 2),
'-',
tijd
)"
Ik ben alleen niet zo zeker van dat locate en of de tabel bijv april slikt
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
Volgens mij Had Jan Koehoorn hier laatst ook een SQL voor geschreven
PHP is tha bomb! :D