kai โพสต์ 2018-10-17 12:53:52

(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)


ขอบคุณครับ


thongkorn โพสต์ 2018-10-17 15:00:35

สำหรับการแปลงรูปแบบวันที่ใน 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



kai โพสต์ 2018-10-17 15:29:11

thongkorn ตอบกลับเมื่อ 2018-10-17 15:00
สำหรับการแปลงรูปแบบวันที่ใน SQL ก็จะใช้ CONVERT(DateTime, "20181017", รหัสรูปแบบ)

ขอบคุณครับ
หน้า: [1]
ดูในรูปแบบกติ: (VB.net) การกำหนดค่าวันที่ย้อนหลัง 3 เดือน