Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > ขอถามเรื่องการเรียงวันที่ค่ะ ชนิดข้อมูลตรงวันที่เบิกจ่ายเป็น nvarchar(50) ค่ะ ใช้ฐานข้อมูล ms sql server



 

ขอถามเรื่องการเรียงวันที่ค่ะ ชนิดข้อมูลตรงวันที่เบิกจ่ายเป็น nvarchar(50) ค่ะ ใช้ฐานข้อมูล ms sql server

 



Topic : 045527



โพสกระทู้ ( 24 )
บทความ ( 0 )



สถานะออฟไลน์




ชนิดข้อมูลตรงวันที่เบิกจ่ายเป็น nvarchar(50)ค่ะ ใช้ฐานข้อมูล ms sql server
ทดลองเรียงจำนวนเงินมันก็เรียงได้อ่ะค่ะ แต่งงว่าเรียงวันที่จะเป็นแบบนี้ค่ะ ไม่ทราบว่าจะแก้ไขปัญหานี้ยังไงดีคะ
db



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-07-15 22:42:23 By : ladyjupz View : 2497 Reply : 4
 

 

No. 1



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


type เป็น nvarchar ไม่ทราบว่าต้องการ sort string หรือ sort datetime ???

แม่เจ้าชื่อ column เป็นภาษาไทยด้วย ตอนทำไม่ทราบว่าปรึกษาใครหรือเปล่าครับ






Date : 2010-07-15 22:52:52 By : tungman
 


 

No. 2



โพสกระทู้ ( 24 )
บทความ ( 0 )



สถานะออฟไลน์


ไม่ได้ปรึกษาใครเลยอ่ะค่ะ ว่างก็ฝึกทำเล่นๆ
จิงแล้ว ลองเขียนโปรแกรม vb.net แบบคลิกเลือกวันเดือนปีบนปฎิทินคะ
ตอนแรกก็ทำเป็นชนิดdatetimeแต่มันมีปัญหาเรื่องปีเยอะอ่ะค่ะมันเพี้ยนๆ เลยเปลี่ยนมาลอง stringดูว่าจะทำได้อ๊ะป่าว
Date : 2010-07-15 23:01:16 By : ladyjupz
 

 

No. 3



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


เพิ่งรู้ว่ามันยอมให้ตั้งชื่อภาษาไทยได้ด้วย ขอบคุณสำหรับความรู้ใหม่ครับ
Date : 2010-07-15 23:05:11 By : PlaKriM
 


 

No. 4



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ยอมน่ะยอมค่ะ เพียงแต่ว่าตั้งชื่อ field เป็น unicode แบบนี้
ไม่ค่อยจะนิยมกันเท่าไหร่ น่าจะเป็นความชอบส่วนตัวแหละค่ะ

การใช้ date time ในกรณีจัดเก็บใน database แบบ charactor
ควรจะเก็บแบบ reverse และ fix-length ค่ะ
แล้ว reverse และ fix-length คืออะไร

นี่คือแบบปกติ 2-12-2010 หรือ d-m-yyyy เป็น format ที่มนุษย์เข้าใจ
แต่เครื่องจักรจะมองเป็น แถวของตัวอักษรไม่ได้ตีความเป็นวันที่

ส่วนแบบ R&F จะเป็นแบบนี้ 2010-12-02 หรือ yyyy-mm-dd
หากวันหรือเดือนไม่ครบสองตำแหน่งก็ให้ใส่เลขศูนย์นำหน้า
ฉะนั้นเมื่อนำมาเรียงข้อมูลจะได้ลำดับตามวันที่จริงๆ

แล้วทำไมต้องมายุ่งยาก คือต้องแปลงให้ตัว database engine เข้าใจอย่างที่ควรจะเป็น
ยกตัวอย่างในกรณีเครื่องคิดเลขที่เราต้องแปลง นิพจน์การบวกลบคูณหารแบบที่มุนษย์ใช้กัน
>> HUMAN EXPRESSION >> 2+(121/3) ให้กลายเป็น
>>REVERSE POLISH NOTATION >> 121,3,/,2+ ก็เพื่อจุดประสงค์เดียวกัน
คือให้เครื่องจักรประมวลผลได้อย่างถูกต้องค่ะ

ทั้งนี้ก้อเป็นคำแนะนำค่ะ จะเก็บแบบเดิมก็ไม่ได้ผิดอะไรเพียงแต่การ manage หรือ
ทำ query อาจจะเพี้ยนๆไป ยกตัวอย่างในกรณีที่คุณต้องการข้อมูลเป็นช่วงเวลา
จาก วันที่ 1 มค 2010 ถึง 15 มค 2010

ถ้าแบบ R&F จะเขียนคล้ายๆลักษณะนี้ค่ะ
SELECT * FROM [TableName]
WHERE [DateFieldWithinReverseAndFixLength] BETWEEN '2010-01-01' AND '2010-01-01'
และหากคุณต้องการความเร็ว ก็ให้ทำ index ซึ่ง index ก็จะทำงานได้อย่างถูกต้อง
ส่งผลให้ได้ความเร็วในการตอบสนองที่สุง

ส่วน แบบที่คุณใช้อาจจะยาวกว่านี้ค่ะ
แต่ถ้าคุณจะเขียนแบบนี้
WHERE [DateFieldWithinNormalFormat] BETWEEN '1/1/2010' AND '15/1/2010'
แบบนี้ วันที่ 2-9 จะไม่ออกมาด้วยค่ะ

ชอบแบบไหนก็เลือกตามอัธยาสัยค่ะ

แต่ถ้าจะให้แนะนำควรกลับไปใช้ datatype แบบ datetime โดยปกติน่ะดีแล้วค่ะ
เพราะเป็นมาตรฐานหากจะ แหกกฎออกไปแนะนำว่าควรเข้าใจกฎให้ดีก่อนค่ะ
ให้เดาว่าสาเหตุที่คุณใช้แบบ datetime แล้ว >> มีปัญหาเรื่องปีเยอะอ่ะค่ะมันเพี้ยนๆ
เลยเปลี่ยนมาลอง stringดูว่าจะทำได้อ๊ะป่าว


เดาว่าคุณคงเอาสตริงมาตัดต่อเข้ากับ sql statement ประมาณนี้
sqlStr = "SELECT * FROM [TableName] WHERE [DateFieldName] " & datetimePicker.SelectedDate.ToString()
ซึ่งเป็นวิธีดั้งเดิม ถ้าเปลี่ยนไปใช้ command parameter จะแก้ปัญหานี้ได้ค่อนข้างจะเด็ดขาดค่ะ
Date : 2010-07-16 00:53:32 By : blurEyes
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอถามเรื่องการเรียงวันที่ค่ะ ชนิดข้อมูลตรงวันที่เบิกจ่ายเป็น nvarchar(50) ค่ะ ใช้ฐานข้อมูล ms sql server
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่