(VB.net) การกำหนดค่าวันที่ย้อนหลัง 3 เดือน
แก้ไขครั้งสุดท้ายโดย kai เมื่อ 2018-10-17 13:27ตอนเขียน vb6
dtpFinish.Value = Date
dtpStart.Value = Date - 30
พอเป็น .net
ผมจะต้องเขียนอย่างไรครับ เพื่อให้ได้วันที่ย้อนหลัง 30 วัน
dtpFinish.Value = Date.Today
dtpStart.Value = ?????
อีกคำถามครับ
Private Sub LoadData_Stock_IN(ByVal d_start As String, ByVal d_fin As String)
sql = "SELECT DateDocInDate, DocInMerge, Remark," & _
"FROM stStockIn_Name " & _
"ORDER BY DocInDate DESC, DocInMergeAll"
mduDB.OpenCN()
DA = New SqlClient.SqlDataAdapter(sql, cn)
DS = New DataSet
DA.Fill(DS, "ListIN")
dtgSt.DataSource = DS.Tables("ListIN")
'***************************
Me.HeadGrid()
End Sub
ฟิลด์ DateDocInDate เก็บข้อมูล วันที่ เป็น String
เช่น 20181017
ตอนที่แสดงหน้า dtgSt
ผมต้องการให้แสดงเป็น 17/10/2018
โดยผมจะสามารถใส่ functiom แปลงค่า ครอบที่ ฟิลด์ DateDocInDate ได้หรือไม่ครับ
และจะต้องเขียนอย่างไรครับ
หรือหลังจากที่ ได้ข้อมูลจาก datasource แล้ว
ผมจะเขียนแทรกตรงส่วนไปนของ Code ได้บ้างครับ
เพื่อให้ได้ผลลัพธ ตามที่ต้องการ (20181017 = 17/10/2018)
ขอบคุณครับ
สำหรับการแปลงรูปแบบวันที่ใน SQL ก็จะใช้ CONVERT(DateTime, "20181017", รหัสรูปแบบ) <-- ไปหารายละเอียดเพิ่มล่ะกันครับ ... แต่สำหรับผม ผมมักเขียนเป็นฟังค์ชั่นแทนครับ เพราะต้องตรวจสอบความถูกต้องของวันที่ก่อนด้วย ... Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'// บรรทัดแรกก็นับวันที่ถอยหลัง 30 วัน, บรรทัดล่าง ผมใช้ฟังค์ชั่นจัดรูปแบบแทน
MsgBox(Now.AddDays(-30) & vbCrLf & _
ConvertDate("20181017"))
End
End Sub
Function ConvertDate(ByVal MyDate As String) As String
Return Microsoft.VisualBasic.Right(MyDate, 2) & "/" & _
Mid(MyDate, 5, 2) & "/" & _
Microsoft.VisualBasic.Left(MyDate, 4)
End Function
thongkorn ตอบกลับเมื่อ 2018-10-17 15:00
สำหรับการแปลงรูปแบบวันที่ใน SQL ก็จะใช้ CONVERT(DateTime, "20181017", รหัสรูปแบบ)
ขอบคุณครับ
หน้า:
[1]