הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה בשאילתא (https://hosts.co.il/forums/showthread.php?t=88836)

BlueNosE 04-04-11 21:48

לא, כנראה יש בעיה בTIMESTAMP שנשמר. תוכל להראות בבקשה את הקוד שמכניס נתונים למסד?

gillllll 05-04-11 00:46

העניין הוא שזה אפילו לא אני שמכניס את התאריך למסד, אלא זה אוטומטי אני מוסיף תוכן ולשדה מסוג TIMESTAMP הגדרתי ברירת מחדל של CURRENT_TIMESTAMP .
דוגמא לתאריך שהוכנס לא מזמן 2011-04-04 23:22:45 כך זה נראה בשדה sendtime

gillllll 05-04-11 00:58

אוי נראה לי שאני מבין מה הבעיה....
עומר זה לא מדויק מה שאמרת כי זה לא עושה המרה כזו של זמנים לפי ההגדרה - TIMESTAMP הוא כמו NOW
CURRENT_TIMESTAMP and CURRENT_TIMESTAMP() are synonyms for NOW().
ואם הוא כמו NOW אז:
http://dev.mysql.com/doc/refman/5.1/...l#function_now
כלומר המעבר מתאריך מספר הוא כנראה כזה...
mysql> SELECT NOW();
-> '2007-12-15 23:50:26'
mysql> SELECT NOW() + 0;
-> 20071215235026.000000

מה שמסביר למה הייתי צריך להכפיל בעוד 60 כדי להגיע לאיזשהו תחום הגיוני - מה שבטוח אני לא סופר שבוע אחורה...
חזרה לשולחן הסרטוטים... יש הצעות?

IgalSt 05-04-11 11:00

ציטוט:

נכתב במקור על ידי gillllll (פרסם 800673)
אוי נראה לי שאני מבין מה הבעיה....
עומר זה לא מדויק מה שאמרת כי זה לא עושה המרה כזו של זמנים לפי ההגדרה - TIMESTAMP הוא כמו NOW
CURRENT_TIMESTAMP and CURRENT_TIMESTAMP() are synonyms for NOW().
ואם הוא כמו NOW אז:
http://dev.mysql.com/doc/refman/5.1/...l#function_now
כלומר המעבר מתאריך מספר הוא כנראה כזה...
mysql> SELECT NOW();
-> '2007-12-15 23:50:26'
mysql> SELECT NOW() + 0;
-> 20071215235026.000000

מה שמסביר למה הייתי צריך להכפיל בעוד 60 כדי להגיע לאיזשהו תחום הגיוני - מה שבטוח אני לא סופר שבוע אחורה...
חזרה לשולחן הסרטוטים... יש הצעות?

זו הסיבה שאני ממליץ להשתמש בפונקציות מובנות להוספה/להסרה של זמנים.
אם אתה מעוניין להבין איך זה עובד אז אכן עדיף לכתוב לבד, אבל כשאתה מפתח לא בשביל הפאן אלא בשביל לעשות עבודה, חבל על בזבוז הזמן :-)

BlueNosE 05-04-11 12:04

במקום להשתמש בברירת המחדל, תשמור בבקשה time() בשדה הזמן שלך כשאתה מכניס למסד.
לא חשבתי לרגע שאתה משתמש במבנה כזה של תאריך, בגלל זה גם רשמתי את מה שרשמתי.
ככה לא תהיה בעיה לא עם הBETWEEN ולא עם שום דבר אחר.

האמת שלי היה בראש את הפונקציה UNIX_TIMESTAMP(), ומשום מה התייחסתי ל-CURRENT_TIMESTAMP().
בכל מקרה החישוב של ה60*60*24*7 תופס לפונקציה UNIX_TIMESTAMP().

gillllll 05-04-11 18:18

טוב נראה לי שאני פשוט אמחק את השדה ואעביר אותו לשדה מסוג TIMEDATE וזהו... איזה פונקציות מובנות יש לסיפור הזה כדי להכניס מזמן של שפת התכנות - לזמן ש MYSQL מקבל? תוכלו לתת לי איזה קישור זה יהיה מעולה :\ עצלנות זה שורש כל הרוע ככה מתחילות בעיות :) ארור מי שהמציא את ה TIMESTAMP מה הוא חשב לעצמו!?!

IgalSt 05-04-11 18:48

ציטוט:

נכתב במקור על ידי gillllll (פרסם 800714)
טוב נראה לי שאני פשוט אמחק את השדה ואעביר אותו לשדה מסוג TIMEDATE וזהו... איזה פונקציות מובנות יש לסיפור הזה כדי להכניס מזמן של שפת התכנות - לזמן ש MYSQL מקבל? תוכלו לתת לי איזה קישור זה יהיה מעולה :\ עצלנות זה שורש כל הרוע ככה מתחילות בעיות :) ארור מי שהמציא את ה TIMESTAMP מה הוא חשב לעצמו!?!

אני דווקא עובד בהצלחה עם timestamp.
אם אתה רוצה לעבוד עם שדה מסוג timedate אז כשאתה מזין ערכים פנימה זה אמור להיות בפורמט
YYYY-MM-DD HH:MM:SS
ואז אתה יכול לשרשר ערך מהפונקציות של ה-PHP אם יותר נוח לך

gillllll 06-04-11 07:03

ציטוט:

נכתב במקור על ידי IgalSt (פרסם 800715)
אני דווקא עובד בהצלחה עם timestamp.
אם אתה רוצה לעבוד עם שדה מסוג timedate אז כשאתה מזין ערכים פנימה זה אמור להיות בפורמט
YYYY-MM-DD HH:MM:SS
ואז אתה יכול לשרשר ערך מהפונקציות של ה-PHP אם יותר נוח לך

אז איך אתה בודק בטווח של תאריכים עם השדה הזה |Rolleyes| הוא פשוט לא ישים ב MYSQL .... (או שהוא לא אוהב אותי זה גם אופציה :) )

OrPol 07-04-11 13:16

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 800685)
במקום להשתמש בברירת המחדל, תשמור בבקשה time() בשדה הזמן שלך כשאתה מכניס למסד.
לא חשבתי לרגע שאתה משתמש במבנה כזה של תאריך, בגלל זה גם רשמתי את מה שרשמתי.
ככה לא תהיה בעיה לא עם הBETWEEN ולא עם שום דבר אחר.

האמת שלי היה בראש את הפונקציה UNIX_TIMESTAMP(), ומשום מה התייחסתי ל-CURRENT_TIMESTAMP().
בכל מקרה החישוב של ה60*60*24*7 תופס לפונקציה UNIX_TIMESTAMP().

+1

אני משתמש רק בtime()
פותר לי את כל הבעיות.


כל הזמנים הם GMT +2. הזמן כעת הוא 00:57.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ