jak wstawić datetime do tabeli bazy danych SQL?

Jak wstawić datetime do tabeli bazy danych SQL ? Czy istnieje sposób na wstawienie tego zapytania za pomocą polecenia insert w C#/. Net?

Author: Alexis Pigeon, 2011-03-13

4 answers

Wartości DateTime powinny być wstawiane tak, jakby były łańcuchami otoczonymi pojedynczymi cudzysłowami:

'20100301'

SQL Server pozwala na wiele akceptowanych formatów dat i powinno być tak, że większość bibliotek programistycznych dostarcza szereg klas lub funkcji do poprawnego wstawiania wartości datetime. Jeśli jednak robisz to ręcznie, ważne jest, aby odróżnić format daty za pomocą DateFormat i użyć formatu uogólnionego:

Set DateFormat MDY --indicates the general format is Month Day Year

Insert Table( DateTImeCol )
Values( '2011-03-12' )

Ustawiając dateformat, SQL Server przyjmuje że mój format to YYYY-MM-DD zamiast YYYY-DD-MM.

SET DATEFORMAT

SQL Server rozpoznaje również format generyczny, który jest zawsze interpretowany w ten sam sposób: YYYYMMDD np. 20110312.

Jeśli pytasz, Jak wstawić bieżącą datę i godzinę za pomocą T-SQL, polecam użycie słowa kluczowego CURRENT_TIMESTAMP. Na przykład:

Insert Table( DateTimeCol )
Values( CURRENT_TIMESTAMP )
 106
Author: Thomas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-13 22:44:11

Musisz mieć kolumnę datetime w tabeli. Następnie możesz wstawić jak poniżej, aby wstawić bieżącą datę:

INSERT INTO MyTable (MyDate) Values (GetDate())

Jeśli nie jest to dzisiejsza data, powinieneś być w stanie użyć ciągu znaków i określić format daty :

INSERT INTO MyTable (MyDate) Values (Convert(DateTime,'19820626',112)) --6/26/1982

Nie zawsze musisz konwertować łańcuch znaków, często możesz po prostu zrobić coś w stylu:

INSERT INTO MyTable (MyDate) Values ('06/26/1982') 

I SQL Server wykona to za Ciebie.

 14
Author: Abe Miessler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-06 13:51:37

Jeśli masz rzeczywisty czas w umyśle GETDATE() będzie to funkcja, której szukasz

 8
Author: bensiu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-13 04:30:53
myConn.Execute "INSERT INTO DayTr (dtID, DTSuID, DTDaTi, DTGrKg) VALUES (" & Val(txtTrNo) & "," & Val(txtCID) & ", '" & Format(txtTrDate, "yyyy-mm-dd") & "' ," & Val(Format(txtGross, "######0.00")) & ")"

Zrobione w vb ze wszystkimi zmiennymi typu tekstowego.

 -1
Author: Ranatunge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-20 18:10:40