как добавить текст «0» из даты формата, которую я конвертировал в MM-DD-гггг ») - PullRequest
0 голосов
/ 06 сентября 2018

Я извлекаю дату "ddMMyyyy" из базы данных, затем преобразую дату в MM-dd-yyyy "перед отображением вывода. По некоторым причинам существуют даты, которые содержат только 7 цифр, которые по умолчанию должны быть 8 цифр.

Когда система обнаруживает, что цифры в дате меньше 8 символов, она выдает ошибку при преобразовании даты, в качестве опции я добавляю 0 в день, когда отображается вывод. например, 08-12-1983, из базы данных по умолчанию 8-12-1983

Я хочу добавить 0 в день отображения вывода.

Я использовал команду vb.net и sql.

Вот мой код.

Public BGC1, BGC2, BGC3, BGC4 As String
Public str As String

 Public Sub GetBGC()
        Try
            myConnection.Open()
            'Main.PresStartResults.Text = "Prestart Checks : "
            'Main.BGCName.Text = "Employee Name "
            'Main.BGCDOB.Text = "DOB"
            'Dim str As String
            str = "SELECT * FROM tblEmp WHERE (EmpID = '" & ADS.UserEmpID & "')"
            Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
            dr = cmd.ExecuteReader
            While dr.Read()
                Dim stringinp = dr("DOB").ToString
                Dim DateTime1 = DateTime.ParseExact(stringinp, "ddMMyyyy", System.Globalization.CultureInfo.InvariantCulture)
                Dim outp = DateTime1.ToString("MM-dd-yyyy")
                BGC3 = outp


            End While


        Catch ex As Exception

            MsgBox("Unable to Connect to BGC DB. You may not have access or DB not available." & ex.ToString)
        End Try

myConnection.Close()

Ответы [ 3 ]

0 голосов
/ 06 сентября 2018

Вы можете использовать метод PadLeft, например:

Dim stringinp = dr("DOB").ToString().PadLeft(8, "0")

Он будет добавлять нули в начале строки, пока длина строки не станет равной 8.

0 голосов
/ 12 ноября 2018

попробуйте

str = "SELECT * FROM tblEmp WHERE (EmpID = '" & ADS.UserEmpID & "')"
            Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
            dr = cmd.ExecuteReader
            While dr.Read()
                dim mydate as Date = dr("DOB")
                Dim outp = mydate.tostring("M/dd/yyyy")
                BGC3 = outp


            End While

или

Dim outp = mydate.tostring("MM/dd/yyyy") 
0 голосов
/ 06 сентября 2018
Imports System
Imports System.Globalization

Public Module Module1

    Public Sub Main()

        Dim dateValue as DateTime
        Dim stringinp as String
        stringinp = "8-12-1983"
        Dim formats = New String(){"dd-MM-yyyy", "d-MM-yyyy", "MM-dd-yyyy"}

        For Each format as String in formats
            If DateTime.TryParseExact(stringinp, formats, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, dateValue)
                Exit For            
            End If
        Next

        Console.WriteLine(dateValue)

    End Sub
End Module
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...