none
date time RRS feed

  • שאלה

  • היי,

    איך אפשר להחליף בין החודש ליום בשדה שהוא מסוג datetime

     הבעיה שאני מקבל כקלט את השדה תאריך וכבר שם  ישנה את הבעיה   שהיום מופיע בחודש והחודש ביום הזאת אשמח לקבל תשובות

    תודה שרון.

    יום שלישי 24 מאי 2011 16:30

תשובות

  • הי,

    בניית המחרוזת זה פתרון מקובל מבחינתך?

    אני לא מכיר דרך להגדיר משתנה מסוג datetime שיחזיק את הנתון בפורמט שונה מ- yyyy-mm-dd.

    דרך אגב אתה בגרסאת 2008?

     

    Declare @x datetime
    Set @x = '2011-04-30 23:10:36'
    
    Select 
    	Convert(nvarchar(2), Day(@x)) + '-' + Convert(nvarchar(2),month(@x)) + '-' + Convert(nvarchar(24),Year(@x)) +
    	+ ' ' + Convert(nvarchar(2), datepart(hh, @x)) + ':' + Convert(nvarchar(2), datepart(mi, @x))+ ':' + Convert(nvarchar(2), datepart(ss, @x))
    
    

    אסף שלם
    • סומן כתשובה על-ידי Meir Pinto יום רביעי 22 יוני 2011 10:49
    יום רביעי 25 מאי 2011 07:33
  • הי,

    דרך יותר נקיה.

    אני מדגיש שזה רק בשלב השליפה בטבלה זה יישמר yyy-mm-dd hh:mm:ss

     

    Declare @x datetime
    Set @x = '2011-04-30 23:10:36'
    
    SELECT CONVERT(VARCHAR(10), @x, 105) + ' ' + CONVERT(VARCHAR(8), @x, 108)
    

    אסף שלם
    • הוצע כתשובה על-ידי Assaf_Shalem יום רביעי 25 מאי 2011 12:32
    • סומן כתשובה על-ידי Meir Pinto יום רביעי 22 יוני 2011 10:48
    יום רביעי 25 מאי 2011 07:45

כל התגובות

  • אני מבין שאתה קולט מקובץ טקסט לטבלה.

    הייתי מנסה שני דברים:

    1. עיין בפוסט הבא שכתבתי שמסביר כיצד ניתן לשנות את הגדרות הסביבה כדי להתאימם לפורמט של התאריך (זה נכון גם לגבי הסדר בין החודש והיום): http://gerireshef.wordpress.com/2011/02/08/%D7%A7%D7%9C%D7%99%D7%98%D7%AA-%D7%AA%D7%90%D7%A8%D7%99%D7%9B%D7%99%D7%9D-%D7%9E%D7%AA%D7%95%D7%9A-%D7%98%D7%A7%D7%A1%D7%98/

    2. אפשר לקלוט את התאריכים כטקסט, לסדר את הטקסט, ורק אז לקלוט לטבלה.


    Geri Reshef http://gerireshef.wordpress.com
    יום שלישי 24 מאי 2011 18:54
  • הי שרון,

    נתחיל מזה שאין בעיה מכוון שגם format שלmm/dd/yyyy  זה פורמט חוקי.

    ההגדרות מגיעות מה-control panel\ regional settings ומוגדרות עבור user.

    מה שאתה יכול לעשות זה לשנות את ההגדרות או להשתמש ב-sql בפונקצייתconvert שיודעת לקבל כקלטאת הפורמט.

    בדוגמא אני מספק תאריך בפורמט mm/dd/yyyy , הפרמטר השלישי 101 מגדיר את הפורמט,ומחליף אותו לפורמט הנכון עבורי.

    declare @x datetime
    
    Set @x = convert(datetime, '12/28/2011', 101)
    
    select @x
    
    

    בהצלחה

    טיפ קטן - ברגע שהגדרתה שיש בעיה יצרתה בעיה :), בו נשתמש במושג סוגיה.

     


    אסף שלם
    יום שלישי 24 מאי 2011 20:07
  •  אסף שלום,

    הנה הסוגיה:

    איך אני הופך את  זה

    23:10:36  2011-04-30

    ל:

    23:10:36  04-30-2011  

     קיבלתי כבר סחרחורת מרב ניסיונות :)

    תודה

    יום רביעי 25 מאי 2011 07:08
  • הי שרון,

    לגבי הסחרחורת תשתה הרבה מים :).

    לגבי הפורמט:

    קודם כל אני יעשה נסיונות ואשלח תגובה לגבי הממצאים.

    דבר שני, לא נהוג לפרמט נתונים בבסיס הנתונים אלא בשכבת הפרזנטציה, כלומר, אם אתה מייצא לקובץ אתה יכול להגדיר את הפורמט בקובץ.

    אם אתה מעביר לאפליקציה היא זו שצריכה לקבןע את הפורמט.

    זה יעזור אם תציין למה אתה צריך לשמור בבסיס הנתונים את הערך בפורמט הנ"ל.

    נשתמע בהקדם


    אסף שלם
    יום רביעי 25 מאי 2011 07:23
  • הי,

    בניית המחרוזת זה פתרון מקובל מבחינתך?

    אני לא מכיר דרך להגדיר משתנה מסוג datetime שיחזיק את הנתון בפורמט שונה מ- yyyy-mm-dd.

    דרך אגב אתה בגרסאת 2008?

     

    Declare @x datetime
    Set @x = '2011-04-30 23:10:36'
    
    Select 
    	Convert(nvarchar(2), Day(@x)) + '-' + Convert(nvarchar(2),month(@x)) + '-' + Convert(nvarchar(24),Year(@x)) +
    	+ ' ' + Convert(nvarchar(2), datepart(hh, @x)) + ':' + Convert(nvarchar(2), datepart(mi, @x))+ ':' + Convert(nvarchar(2), datepart(ss, @x))
    
    

    אסף שלם
    • סומן כתשובה על-ידי Meir Pinto יום רביעי 22 יוני 2011 10:49
    יום רביעי 25 מאי 2011 07:33
  • הי,

    דרך יותר נקיה.

    אני מדגיש שזה רק בשלב השליפה בטבלה זה יישמר yyy-mm-dd hh:mm:ss

     

    Declare @x datetime
    Set @x = '2011-04-30 23:10:36'
    
    SELECT CONVERT(VARCHAR(10), @x, 105) + ' ' + CONVERT(VARCHAR(8), @x, 108)
    

    אסף שלם
    • הוצע כתשובה על-ידי Assaf_Shalem יום רביעי 25 מאי 2011 12:32
    • סומן כתשובה על-ידי Meir Pinto יום רביעי 22 יוני 2011 10:48
    יום רביעי 25 מאי 2011 07:45
  • היי,

    אשמח אם תוכל/י לעדכן אותנו בסטטוס השאלה שלך.

     

    במידה וקיבלת תשובה מתאימה לשאלתך, יש לסמן את התשובה המתאימה ע"י לחיצה על "סמן כתשובה" ליד סימון ה V הירוק

    אם לא קיבלת תשובה, מומלץ לספק פרטים נוספים אודות הבעיה, פרטי לוג, צילומי מסך וכו'

    על מנת להעלות תמונה לפורום ניתן להעזר במדריך להעלאת תמונה.


    אם תגובתי פתרה את בעייתך - לחץ/י, על "סמן כתשובה" ליד סימן ה V הירוק.

    על מנת להעלות תמונה לפורום ניתן להעזר במדריך להעלאת תמונה
    מיקרוסופט מציעה שירות זה ללא תשלום, למטרת סיוע למשתמשים והעשרת הידע הקשור בטכנולוגיות ובמוצרים של Microsoft. תוכן זה מתפרסם כפי שהוא והוא אינו מעיד על כל אחריות מצד מיקרוסופט.
    יום שלישי 21 יוני 2011 11:43