2016-04-28 5 views
0

Ich versuche, ein Datum von einem DatetimePicker in SQL Server-Datenbank als Dauer einer Benutzerdeaktivierung zu speichern, aber ich möchte nur Tag Monat und Jahr speichern. Hier ist meine Funktion bisher:Datum in SQL Server ohne Minuten und Stunden speichern

Public Sub DeactivateUser(user As String, duration As Date) 
    Dim query As String 
    Dim startdate As Date = Date.Parse(Date.Now) 
    query = "Update SC_User Set Us_duration='" & duration & "','" & "Us_Start='" & startdate & "Where Us_User='" & user & "'" 
    Access.ExecuteQuery(query) 
    query = "Update SC_User Set Us_Inactive" & 1 & "Where Us_User='" & user & "'" 
    Access.ExecuteQuery(query) 
    MessageBox.Show("User deactivated") 
End Sub 

Dies funktioniert nicht, zeigt aber meine Idee.

+0

SQL Server nicht Teildaten nicht unterstützt, soweit ich weiß. –

+0

Möchten Sie eine Dauer oder ein Datum? Das sind zwei verschiedene Dinge. –

+0

Das ist eine lächerliche Aussage: 'Dim Start Date As Date = Date.Parse (Date.Now)'. Warum möchten Sie ein "Date" zu einem "Date" analysieren? Der Punkt der Analyse besteht darin, ein "Datum" aus einer "Zeichenfolge" zu erstellen. – jmcilhinney

Antwort

1

Wenn Sie das heutige Datum ohne die aktuelle Uhrzeit möchten, verwenden Sie Date.Today. Wenn Sie das Datum ohne die Zeit von einem beliebigen Wert DateTime möchten, verwenden Sie seine Date Eigenschaft, z.

myDate = myDateTime.Date 

Beachten Sie, dass die Date Eigenschaft gibt immer noch ein DateTime aber mit seinem Zeitteil auf Null gesetzt. Es überrascht nicht, die Date.Today Eigenschaft wird wie folgt umgesetzt:

Return Date.Now.Date 

Wenn Sie nur ein Datum ohne Zeit in SQL Server speichern möchten, dann sollten Sie die date Datentyp verwenden, die keine Zeit speichern.

0

können Sie wählen, was Format, das Sie unter Verwendung einer Zeichenkette für das Datum möchten:

Dim startdate As String = Now().ToString("MM-dd-yyyy") 
query = "Update SC_User Set Us_duration='" & duration & "','" & "Us_Start='" & startdate & "Where Us_User='" & user & "'" 
Access.ExecuteQuery(query) 

Dies ist natürlich, würden Sie geben, was die Zeit mit nur Monate, Tage und Jahre.

0

Datetime zurückgeben können Basistag

dtPicker.Value.Date 
Verwandte Themen