![]() |
question for php/sql wizards
what's the best format for me to save dates in my database. i'm still a newb to a lot of this. for what i am working on, i need to reference back upon dates frequently. what is the best format for me to keep thing sin to make things easier on myself down the line?
|
You might as well get used with timestamp since you're just beginning.
You can convert it in any format you like when you need to. |
Y-M-D works for us.
|
AJC,
depends on how the data is entered, do you want to tag rows you insert with current time? Or do you want to set the specific time you want for the row when you create it? Do you plan to do calculations on the date? IE one row's date minus another row's date? Or just "get anything since day XYZ"? According to your post's topic, I imagine you use php to do the actual site? |
Quote:
|
DATE or DATETIME if you need to store the time as well. Allows for all kinds of good date operations. For example, that two week thing:
SELECT * FROM table_name WHERE date_added >= date_sub(now(), interval 2 week); |
While I've got you types in here, I might as well ask another question that has been picking at me. Say I'm loading a large text file into an array, just how many elements can an array handle? If I need to load 100,000 lines in, is this going to cause my script to shit the bed, or is that a reasonable number for a single array to handle? Say the text file is upwards of 20mb, like a large datafeed or CSV...
|
Quote:
|
Quote:
|
Quote:
What I was aiming for was loading the file into an array and then looping through the array and entering all the values into the database, parsing data out of each line in the text and then putting it into the database in the specified columns for each item. Hitting Google now, and looking at BULK INSERT for importing to SQL. The format of the lines I'm inserting isn't that of a typical CSV, there's several values delimited by different characters. Like one value sperated from the next by a period, then that one sperated from the next by a comma, and then by a space, yadda yadda. So I guess I would have to modify the text file beforehand, and the BULK INSERT? |
Yep, but it's best to do it line-by-line, instead loading the entire file into memory at once. Create mySQL table,then for example:
Code:
$file = fopen('myfile.txt', 'r'); |
Quote:
|
You seem to be in good hands with kiopa....
|
Quote:
Fuuuuuuuuuuuuck why didn't I put the effort in to learn some code ages ago. |
As for what format you choose. I MUCH prefer a timestamp over datetime (timestamp is a ten char numerical time value. and date time is like YYYY-MM-DD). I actually loathe datetime for whatever reason. Probably because I always feel it's better to have my hard data in the database be as raw as possible and convert it when parsing it to nicer values once it hits the page.
|
I think the DATE data type best covers what I need to do for now. I have an input list with my date values in MM/DD/YYYY format though. Am I wrong in assuming I have to have my DATE date entries in YYYY-DD-MM format? Or is there a way I can set the column to accept that format of DATE value? Can I convert this quickly on the fly as I enter the values into my table? Or do I have to strip all the day/month/year values out with regex and piece it back together as variables to enter it in the proper date format?
|
bump for that ^^^^^^ question
|
Quote:
|
Quote:
Thanks again for the tips. Appreciated. |
In SSH or terminal if you can; Quote:
This was for a database of all the postal zip codes in the United States . PHP is way too slow to load databases. |
datetime? depend how you are wanting to use it.... but most often i use datetime
|
Quote:
With regards to the date splitting, using a regexp is ok - however I think just using explode() will/can be quicker. Especially for something this trivial, it doesn't really require a regexp. |
Quote:
Code:
$oldDate = "1/12/2011"; |
Quote:
|
Quote:
so it should be Code:
$oldDate = "1/12/2011"; |
You can do it in mysql directly btw using STR_TO_DATE()
Code:
INSERT INTO ... ( ... ) VALUES ( ... , STR_TO_DATE('1/12/2011', '%e/%m/%Y') , ... ) |
Quote:
|
Quote:
even if you can ofcus, why reinventing the wheel ? :) if you feel unsure about the functions, simple queries against mysql as example: mysql> SELECT STR_TO_DATE('1/12/2011', '%e/%m/%Y'); +--------------------------------------+ | STR_TO_DATE('1/12/2011', '%e/%m/%Y') | +--------------------------------------+ | 2011-12-01 | +--------------------------------------+ 1 row in set (0.00 sec) Then you always can see how things will look like and you will learn a lot more about mysql functions. |
We always store php timestamp to the database, can then display it how you want using php date function
|
Quote:
Down the line, i mean ;) |
Quote:
|
Quote:
|
Quote:
Got root? bash cron a bash script to do this? I have never done this but I found this as a protype ... Code:
#!/bin/bash |
Quote:
I don't get paid by the word :upsidedow |
All times are GMT -7. The time now is 10:48 PM. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
©2000-, AI Media Network Inc