تشكيل الوقت والتاريخ Format Date &Time in Sql server

تشكيل الوقت والتاريخ  Format Date &Time in Sql server

المستوي الخامس مبرمج محترف


حفظ الوقت او التاريخ وفق شكل معين ..Format Date in asp.net,change Date Format in sql

submit to reddit

تشكيل الوقت والتاريخ Format Date &Time in Sql server

نظرة عامة

في بعض الاحيان نحتاج الي ادخال التاريخ وحفظه وفق صيغة معينة يقبلها السيكوال سيرفر وهي حفظ تاريخ او وقت بشكل معين

SQL Server Date Formats and Format date and DateTime in asp.net

 

وفي بعض الاحيان نحول التاريخ الي نوع نص كي يقبله السيكوال سيرفر او العكس

ففي بعض الاحيان عندما تقوم بحفظ التاريخ او الوقت تحدث مشكلة ويقول لك الاتي

cant Convert varchar to datetime

اي انه غير قادر علي تحويل النوع النصي الي نوع  التاريخ

او يحفظ بشكل عادي كل شئ ولكنه يحفظ التاريخ علي انه عام 1900 وهو اول تاريخ او التاريخ الافتراضي .اي انه لم يحفظ اصلا التاريخ المدخل .

الحل

ان نحول التاريخ الي نوع نصي ثم نحفظه

اولا تعالوا نتفق علي فانكشن بداخل السيكوال سيرفر تعطيك تاريخ الوقت الحالي وهي

()GetDate

يوجد لديك نوعين

1- تحفظ تاريخ الوقت الحالي

2- تحفظ مدخل تاريخ في التكست بوكس او مدخل نصي

 

1- تحفظ تاريخ الوقت الحالي

تعالوا  نكتب متغير نصي ونضع به التاريخ الحالي وهو كود بسيط .

string date = "CAST(CONVERT(varchar, GETDATE(), 103) AS DATETIME)";


المتغير الذي ستحفظه في جملة الادخال هي

date

كلمة كاست cast

تعني انني سوف احول من شئ الي شئ اخر .

الفانكش اسمها

getdate  اعطتني تاريخ اليوم الحالي

والان حولت تاريخ اليوم الي نص ..واخيرا تم حفظها علي انها نوع تاريخ  as Date Time

رقم 103 تعني ان التاريخ سوف يكون كالاتي يوم ثم شهر ثم عام

5/12/2012

 

الان واخيرا اذا حفظت احفظ فقط كلمة ال date

وسوف يتم الحفظ بدون مشاكل

insert into table(date_col)values (date);


2- تحفظ مدخل تاريخ في التكست بوكس او مدخل نصي

 

مثلا انت تكتب تاريخ بداخل تكست بوكس او تريد حفظ تاريخ بين علامات تنصيص ..فهذا يعتبر نوع نصي

تريد تحويله الان الي نوع تاريخ يقبله قاعدة البيانات .سوف تقول تستطيع عمل الاتي

DateTime.Parse(TextBox1.Text)

ولكن قد تعطي ايضا مشكلة

Cant Convert Varchar to DateTime

والان نريد عمل كاست او تحويل مناسب

string date = " CAST('" + TextBox1.Text + "' AS smalldatetime)";

مثل السابق ايضا قمت بتحويل النص الي تاريخ ليقبلها السيكوال سيرفر

وعندما تحفظ تضع فقط كلمة date

وبالطبع هنا لا نناقش جملة حفظ ..نناقش كيفية عمل كاست وتحويل للتاريخ كي نحفظه ..من فضلك راجع كود الحفظ في الصفحة .

ايضا يمكنك الاتي

string date = "CAST(CONVERT(varchar, '" + TextBox1.Text + "', 103) AS DATETIME)";

 

وكما قلنا منذ قليل رقم 103 تعني يوم ثم شهر ثم عام

 

هل يوجد كود بسيط يغير صيغة فورمات السيكوال سيرفر بعد تنصيبه

change Date Format after installing SQL server


يوجد هذا الكود طبعا افتح كويري جديدة في برنامج السيكوال سيرفر ثم اكتب الاتي

SET DATEFORMAT dmy;

اي اجعل التاريخ يوم شهر سنة

وتستطيع ايضا عمل الاتي

SET DATEFORMAT mdy

شهر يوم سنة

وهذا يدخلنا الان في صيغ التاريخ المختلفة

Formate Date styles

وهذا جدول يحتوي علي صيغ التاريخ في السيكوال سيرفر

Style Code Style Format Example
0 or 100 Default. Equivalent to not specifying a style code. mon dd yyyy hh:mmAM Sep 8 2007 9:00PM
1 USA date. mm/dd/yy 09/08/07
2 ANSI date. yy.mm.dd 07.09.08
3 UK / French date. dd/mm/yy 08/09/07
4 German date. dd.mm.yy 08.09.07
5 Italian date. dd-mm-yy 08-09-07
6 Abbreviated month. dd mmm yy 08 Sep 07
7 Abbreviated month. mmm dd, yy Sep 08, 07
8 or 108 24 hour time. HH:mm:ss 21:00:00
9 or 109 Default formatting with seconds and milliseconds appended. mon dd yyyy hh:mm:ss:fffAM Sep 8 2007 9:00:00:000PM
10 USA date with hyphen separators. mm-dd-yy 09-08-07
11 Japanese date. yy/mm/dd 07/09/08
12 ISO date. yymmdd 070908
13 or 113 European default with seconds and milliseconds. dd mon yyyy HH:mm:ss:fff 08 Sep 2007 21:00:00:000
14 or 114 24 hour time with milliseconds. HH:mm:ss:fff 21:00:00:000
20 or 120 ODBC canonical date and time. yyyy-mm-dd HH:mm:ss 2007-09-08 21:00:00
21 or 121 ODBC canonical date and time with milliseconds. yyyy-mm-dd HH:mm:ss.fff 2007-09-08 21:00:00.000
101 USA date with century. mm/dd/yyyy 09/08/2007
102 ANSI date with century. yyyy.mm.dd 2007/09/08
103 UK / French date with century. dd/mm/yyyy 08/09/2007
104 German date with century. dd.mm.yyyy 08.09.2007
105 Italian date with century. dd-mm-yyyy 08-09-2007
106 Abbreviated month with century. dd mmm yyyy 08 Sep 2007
107 Abbreviated month with century. mmm dd, yyyy Sep 08, 2007
110 USA date with hyphen separators and century. mm-dd-yyyy 09-08-2007
111 Japanese date with century. yyyy/mm/dd 2007/09/08
112 ISO date with century. yymmdd 20070908
126 ISO8601, for use in XML. yyy-mm-ddThh:mm:ss 2007-09-08T21:00:00

 

 

 

#تشكيل الوقت والتاريخ Format Date &Time in Sql server

رابط الموضوع
http://citystarit.com/Article_details.aspx?id=105