ورود

View Full Version : 0 کردن چند رقم در دستور آپدیت



arman_Delta2002
یک شنبه 16 مهر 1391, 22:01 عصر
سلام میخواستم بدونم آیا دستوری میتوان با SQL نوشت که مثلا 3 رقم آخر عدد رو 000 کنه
123456789 بشه 123456000 یا 4 رقم یا 2 رقم یا 5 رقم یک فیلد رو در زمان آپدیت تغییر بده مرسی

nedata
یک شنبه 16 مهر 1391, 23:18 عصر
1- ميتونيد اول بر 1000 تقسيم كنيد و بعد در 1000 ضرب كنيد
2- select convert(int,substring('123456789',1,len('123456789 ')-3)+'000')

arman_Delta2002
دوشنبه 17 مهر 1391, 08:44 صبح
کد شما رو تو یه تیبل تست کردم و لی اشکال گرفت و این رو داد


UPDATE Table_1
SET Gheymat =
(SELECT CONVERT(int, SUBSTRING(Table_1.Gheymat, 1, LEN(Table_1.Gheymat) - 3) + '000') AS Expr1)

Gheymat نوعش بیگ اینت هست فکر کنم باید کانورت شه به رشته

nedata
دوشنبه 17 مهر 1391, 22:06 عصر
بله بايد تبديل بشه.
از روش اول هم مي تونيد استفاده كنيد

Nima7887
شنبه 22 مهر 1391, 08:59 صبح
بجاي اين همه تبديلهاي بي خودي از توابع خود اس كيو ال استفاده كنيد
تابع رند اينكارو مي كنه
مثلا
select ROUND(123456789,-3)

nedata
یک شنبه 23 مهر 1391, 00:20 صبح
اين دستور علاوه بر اينكه سه رقم آخر را صفر مي كند ، عمل round‌ را نيز انجام ميدهد