خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


نحوه تبدیل smalldatetime به dateTime در SQL Server

نحوه تبدیل smalldatetime به dateTime در SQL Server
در این پست کوتاه در مورد نحوه تبدیل مقادیر smallldatetime به datetime صحبت می کنیم و مثال هایی را در این خصوص شاهد خواهید بود. وقتی مقدار smallldatetime را به datetime تبدیل می کنید ، ساعت ها و دقیقه ها کپی می شوند و ثانیه ها و ثانیه های کسری روی 0 تنظیم می شوند.

نرم افزار سامانه مودیان راهکار
در مثال زیر، از تابع CAST در دستور Select برای تبدیل smallldatetime به datetime استفاده شده است:



DECLARE @thesmalldatetime smalldatetime
SET @thesmalldatetime = '2031-03-25 11:15:29'
SELECT
@thesmalldatetime AS 'thesmalldatetime',
CAST(@thesmalldatetime AS datetime) AS 'datetime';

+---------------------+-------------------------+
| thesmalldatetime | datetime |
|---------------------+-------------------------|
| 2031-03-25 11:15:00 | 2031-03-25 11:15:00.000 |
+---------------------+-------------------------+

همانطور که مشاهده می کنیدف مولفه smalldatetime از 00 برای ثانیه استفاده می کند حتی اگر صریحاً آن را روی 29 تنظیم کنیم. این بدان دلیل است که هنگام استفاده از نوع داده smalldatetime، ثانیه ها همیشه صفر هستند بنابراین ، وقتی مقدار را به datetime تبدیل می کنیم ، مقدار ثانیه ها (و ثانیه های اعشاری) روی صفر تنظیم می شوند.

اگر کامپوننت ثانیه را در smalldatetime را 30 و بیش از 30 مقداردهی کنید، اتفاقی که در خروجی اسکریپت زیر مشاهده می کنید رخ می دهد:

DECLARE @thesmalldatetime smalldatetime
SET @thesmalldatetime = '2031-03-25 11:15:31'
SELECT
@thesmalldatetime AS 'thesmalldatetime',
CAST(@thesmalldatetime AS datetime) AS 'datetime';

+---------------------+-------------------------+
| thesmalldatetime | datetime |
|---------------------+-------------------------|
| 2031-03-25 11:16:00 | 2031-03-25 11:16:00.000 |
+---------------------+-------------------------+

شاید خروجی ماننند اسکریپت قبل باشد ولی اگر به کامپوننت دقیقه دقت کنید، خواهید دید به یک دقیقه بالاتر گرد شده است.
حالا در مثالی دیگر با استفاده از تابع CONVERT اقدام به تبدیل smalldatetime به Datetime خواهیم کرد.

DECLARE @thesmalldatetime smalldatetime
SET @thesmalldatetime = '2031-03-25 11:15:29'
SELECT
@thesmalldatetime AS 'thesmalldatetime',
CONVERT(datetime, @thesmalldatetime) AS 'datetime';

+---------------------+-------------------------+
| thesmalldatetime | datetime |
|---------------------+-------------------------|
| 2031-03-25 11:15:00 | 2031-03-25 11:15:00.000 |
+---------------------+-------------------------+

لطفا به مثال زیر دقت کنید:

DECLARE @thesmalldatetime smalldatetime, @thedatetime datetime
SET @thesmalldatetime = '2031-03-25 11:15:29'
SET @thedatetime = @thesmalldatetime
SELECT
@thesmalldatetime AS 'thesmalldatetime',
@thedatetime AS 'datetime';

+---------------------+-------------------------+
| thesmalldatetime | datetime |
|---------------------+-------------------------|
| 2031-03-25 11:15:00 | 2031-03-25 11:15:00.000 |
+---------------------+-------------------------+

در مثال فوق، همان نتیجه ای که در مثال های قبلی گرفته بودیم را مشاهده می کنید. در این تبدیل، هیچ تابعی مورد استفاده قرار نگرفته است و وقتی متغیر thesmalldatetime که از نوع smalldatetime است را به متغیر thedatetime که از نوع datetime است را پاس می دهید، در پشت صحنه عمل تبدیل توسط SQL Server انجام می شود.


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز