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 > ต้องการหา จำนวนวันที่เหลือ โดยนำ date - date แต่ทำไมผลลัพธ์ไม่ได้เป็น จำนวนวัน ทำไมได้เป็นdate(4/2/2554)



 

ต้องการหา จำนวนวันที่เหลือ โดยนำ date - date แต่ทำไมผลลัพธ์ไม่ได้เป็น จำนวนวัน ทำไมได้เป็นdate(4/2/2554)

 



Topic : 055479

Guest




ต้องการหา จำนวนวันที่เหลือ
ภาษาที่ใช้เป็น asp.net/vb โดยเป็นการ select data จากฐานข้อมูล มาหลายๆเรคคอร์ด
ตอนนี้โค้ดถ้าพูดสั้นๆคือ "select (ExpireDate - " & Date.Today & ") as AmountDayExpire FROM package" โดย ExpireDate คือฟิลด์ที่อยู่ในฐานข้อมูล ส่วน Date.Today คือฟังก์ชั่นนึงใน asp.net ซึ่งพอโปรแกรมรันแล้วมันจะเห็นเป็นวันที่ปัจจุบันอยู่ใน sql code

ตอนนี้ ExpireDate ที่เก็บอยู่ในฐานข้อมูลจะเป็น 5/2/2554 แต่พอเวลาเรา select expiredate from package มาแสดง มันจะแสดงเป็น 1/2/2554 00:00:00 คือมันจะแสดงเวลามาด้วย (อันนี้ตอนแรกก็เป็นปัญหา แต่ก็เคยถามๆเอาแล้วมีคนบอกให้ตั้งค่า format เอาในโปรแกรม)

ส่วน Date.Today ฟังก์ชั่นนี้มันจะแสดง 2/2/2554 (สมมติวันนี้เป็นวันที่2)

โค้ดอันนี้ "select (ExpireDate - " & Date.Today & ") as AmountDayExpire FROM package" พอรันแล้ว AmountDayExpire มันแสดงเป็น 4/2/2554 23:59:26 วัน ซึ่งมันผิดจากที่คาดการณ์ไว้ คือ มันน่าจะแสดงผลเป็น 4 วัน ถึงจะเป็นแบบที่อยากได้


************************หมายเหตุ โค้ดเต็มๆ ดังนี้***************************************
หน้า .aspx

<HTML>
<HEAD>
<title>ExampleDatalist2</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="Tahoma">
<asp:datalist id="DataList1" runat="server">
<SeparatorTemplate><hr></SeparatorTemplate>
<ItemTemplate>
<TABLE bgcolor="#ffffcc" width="100%">
<TR>
<TD><h3><%#Container.DataItem("Title")%></h3>
</TD>
</TR>
<TR>
<td><TABLE BORDER="1">
<TR>
<TD><b>มูลค่า</b>
<br>
<%#Container.DataItem("Price")%>
</TD>
<TD><b>ส่วนลด</b><br>
<%#Container.DataItem("Discount")%>
</TD>
<TD><b>ประหยัด</b><br>
<%#Container.DataItem("Save")%>
</TD>
</TR>
</TABLE>
</td>
</TR>
<TR>
<TD>ดีลนี้หมดอายุ
<%#DataBinder.Eval(Container.DataItem, "ExpireDate","{0:D}")%>
</TD>
</TR>
<tr>
<td><TABLE WIDTH="100%" CELLSPACING="1" CELLPADDING="1">
<TR>
<TD><font color="#ff0066" style="FONT-WEIGHT: bold">โอกาสพิเศษเหลือ <%#Container.DataItem("AmountDayExpire")%> วัน</font></TD>
<TD align="right"><font color="#00cc00" style="FONT-WEIGHT: bold">ดีลนี้ขายไป
<%#Container.DataItem("AmountSale")%>
</font>
</TD>
</TR>
</TABLE>
</td>
</tr>
<tr>
<td align="right"><a href='ExampleDatalistPassValue.aspx?a=<%#Container.DataItem("PackageId")%>' target="_blank">อ่านต่อ</a></td>
</tr>
</TABLE>
</ItemTemplate>
</asp:datalist></FONT></form>
</body>
</HTML>

***************************************************************************************************************
หน้า .aspx.vb

Imports System.Data
Imports System.Data.OleDb

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim strConnString As String
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("database/prosogo.mdb") & ";"
objConn = New OleDbConnection(strConnString)
objConn.Open()

BindData()

objConn.Close()
objConn = Nothing
End Sub


Sub BindData()
Dim strSQL As String
strSQL = "SELECT PackageId,Title,Price,Discount,Save,ExpireDate,AmountSale,(ExpireDate - " & Date.Today & ") as AmountDayExpire FROM package"

Dim dtReader As OleDbDataReader
objCmd = New OleDbCommand(strSQL, objConn)
dtReader = objCmd.ExecuteReader()

'*** BindData to DataList ***'
DataList1.DataSource = dtReader
DataList1.DataBind()

dtReader.Close()
dtReader = Nothing

End Sub



Tag : .NET, Ms Access, Web (ASP.NET), VS 2003 (.NET 1.1)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-02-03 01:15:24 By : หมวย View : 2045 Reply : 2
 

 

No. 1



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



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


ผมใช้วิธีเอาวันที่ getdate - expiredate นะครับ ผมใช้กับโปรแกรมที่บริษัทใช้งานจริงครับ

datediff(day,getdate(),ExpireDate) จะได้จำนวนวันมาครับ


exam::: select datediff(day,getdate(),'12/31/2011')
==>>> 331 day

mail มาถามเพิ่มเติมได้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-03 08:42:45 By : suphat.p
 


 

No. 2

Guest


ขอบคุณค่ะ ที่ชี้ช่องทางให้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-05 18:10:50 By : หมวย
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ต้องการหา จำนวนวันที่เหลือ โดยนำ date - date แต่ทำไมผลลัพธ์ไม่ได้เป็น จำนวนวัน ทำไมได้เป็นdate(4/2/2554)
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่