from
http://msdn2.microsoft.com/en-us/library/aa172787(SQL.80).aspx
Writing International Transact-SQL Statement
ถ้าต้องการให้ T-SQL Statement portableมากขึ้นให้ทำดังนี้
-เปลี่ยน char, varchar ,text ให้เป็น ncharm , nvarchar , ntext
ซึ่งจะทำให้ไม่ต้องเลือก codepage ในการเปลี่ยนชุดตัวอักษร
- เมื่อประมวลผลเปรียบเทียบ mount / day-of-week ให้ใช้
function dateparts() แทน datename() เพราะว่าแต่ละภาษาจะ ส่งค่ามาต่างกัน
อย่าโค้ด ใน program ให้ผูกกับ function datename เว้นแต่เมื่อจะแสดงผลอย่างเดียวเท่านั้น
- เมื่อ อ้างถึง วัน ในการเปรียบเทียบหรือ เป็น input ของ INSERT หรือ UPDATE
statement ให้ใช้ ค่าคงที่ ซึ่งจะแปลงไปเป็นค่าเดียวกันเสมอ ในทุกๆภาษา
ADO ,OLEDB ,ODBC application จะต้องใช้ รูปประโยคของ timestamp,date , และ time ในแบบ Odbc escape clause ลักษณะนี้
{ ts 'yyyy-mm-dd hh:mm:ss[.fff] '} เช่น: { ts '1998-09-24 10:02:20' }
{ d 'yyyy-mm-dd'} เช่น: { d '1998-09-24' }
{ t 'hh:mm:ss'} เช่น: { t '10:02:20'}
Application ที่ใช้ API อื่น หรือ T-SQL Script Store procedure และ Trigger จะต้องใช้
การเขียนในลักษณะ ที่เป้นตัวเลขที่เชื่อมต่อกันโดยไม่เว้นวรรค ตัวอย่างเช่น yyyymmdd เช่น 19980924
Application ที่ใช้ API อื่น หรือ T-SQL Script Store procedure และ Trigger อาจจะใช้
CONVERT Statement ร่วมกับการระบุ style parameter สำหรับทุกๆการแปลงค่าระหว่าง
ตัวแปรประเภท date และ smalldate และ character string และ data types .
ตัวอย่างเช่น ประโยคต่อไปนี้จะได้รับการแปลแล้วเหมือนกัน ในทุกๆภาษา หรือในทุกๆ การเซ็ตรูปแบบวันที่
SELECT *
FROM Northwind.dbo.Orders
WHERE OrderDate = CONVERT(DATETIME, '7/19/1996', 101)
ข้อมูล เพิ่มเติม ให้ดูที่ CAST และ CONVERT Statement
No comments:
Post a Comment