 |
|
สอบถามการ Update ข้อมูลโดย วันที่ใช้เป็น Getdate +1 แต่เวลาไม่เปลี่ยนค่ะเอาเวลาเดิม |
|
 |
|
|
 |
 |
|
สวัสดีค่ะรบกวนสอบถามหน่อยพอดี Select ข้อมูลสินค้าที่ตรงกับวันอาทตย์ โดยใช้ Script SQL นี้ค่ะ
Code
SELECT est_delivery_datetime,service_code,*
FROM shipment (nolock)
WHERE DATEPART(w,est_delivery_datetime) IN (1)
and CONVERT (char(7),est_delivery_datetime ,121)>='2016-06'
and service_code ='ND'
ผลลัพธ์ ที่ออกมาคือ 2016-06-05 17:00:00.000
ที่นี้ต้องการ Update ข้อมูลโดยลองใช้ Script นี้ค่ะ
Code
update shipment
set est_delivery_datetime =GETDATE()+1 +convert(char(10),est_delivery_datetime,114)
WHERE DATEPART(w,est_delivery_datetime) IN (1)
and CONVERT (char(7),est_delivery_datetime ,121)>='2016-06'
and service_code ='ND'
ผลลัพธ์ที่ออกมาคือ 2016-06-06 18:29:00.100
ซึ่งผลลัพธ์จริง ๆ ที่ต้องการคือ 2016-06-06 17:00:00.000 (เวลาเดิม)
ต้องแก้ไข Script Update อย่างไรค่ะ รบกวนด้วยค่ะ คือไม่ต้องการระบุ set est_delivery_datetime = วันที่ ค่ะ เนื่องจากต้องทำทุกอาทิตย์และจะตั้ง Job ให้ทำงาน รบกวนด้วยค่ะ
Tag : MySQL, Ms SQL Server 2005, Ms SQL Server 2008, Ms SQL Server 2012
|
ประวัติการแก้ไข 2016-06-04 20:33:44 2016-06-04 20:34:13
|
 |
 |
 |
 |
Date :
2016-06-04 20:31:50 |
By :
saya559 |
View :
2060 |
Reply :
4 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
GETDATE()+1 +convert(char(10),est_delivery_datetime,114)
เปลี่ยนเป็น
Code (SQL)
DATEADD(day, DATEDIFF(day, 0, GETDATE()), CONVERT(CHAR(8),est_delivery_datetime,108))
วันที่ ใช้ วันที่ปัจจุบัน จาก getdate()
เวลาใช้จาก est_delivery_datetime
|
 |
 |
 |
 |
Date :
2016-06-06 14:59:43 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ต้องการเลื่อนวันออกไป 1 วันสำหรับสินค้าที่จัดส่งวันอาทิตย์อย่างงี้เหรอ ?
Code (SQL)
UPDATE dbo.Employees SET
BirthDate = DATEADD(D,1,GETDATE())
WHERE DATEPART(W,BirthDate) = 1
AND CAST(BirthDate AS DATE) >= CAST('06/01/2016' AS DATE)
AND Region = 'ND'
โจทย์ที่ให้มามันตรงตัวมากเลยนะครับ
ใช้ DATEADD เพิ่มหรือลดวันได้ครับ
D เป็นตัวแปรกำหนดว่าเพิ่มแบบไหน วัน เดือน ปี ฯลฯ
1 เป็นจำนวนที่ต้องการ ใส่เป็นบวกเช่น 1 2 3 เพื่อเพิ่มวัน หรือ -1 -2 -3 เพื่อลด
GETDATE() แทนค่าด้วยคอลัมน์วันที่เราต้องการครับ (ตัวอย่างให้ดึงวันปัจจุบันมาแสดง)
แต่แลกเปลี่ยนกันเพราะผมไม่รู้จักคำสั่ง DATEPART เช่นกัน
|
ประวัติการแก้ไข 2016-06-07 21:05:53
 |
 |
 |
 |
Date :
2016-06-06 23:23:15 |
By :
deksoke |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ติดตรงคิดไม่ตกเลยค่ะว่าจะ update ข้อมูลยังไงให้เอา startdate บรรทัดถัดไปมา -1 วันใส่เข้าไปที่ enddate และให้รู้ว่าไม่ใช่บรรทัดสุดท้ายของ id นั้นค่ะ และตารางนี้ไม่มี row number ค่ะ
ขอบคุณค่ะ
|
 |
 |
 |
 |
Date :
2020-09-24 20:45:15 |
By :
Pumpui749 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|