Czy istnieje wartość lub polecenie, takie jak DATETIME, których mogę użyć w zapytaniu ręcznym, aby wstawić bieżącą datę i godzinę?
INSERT INTO servers (
server_name, online_status, exchange, disk_space, network_shares
) VALUES(
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE' 'DATETIME'
)
Podana na końcu wartość DATETIME to miejsce, w którym chcę dodać bieżącą datę i godzinę.
Odpowiedzi:
Możesz użyć
NOW()
:źródło
curdate()
Użyj CURRENT_TIMESTAMP () lub teraz ()
Lubić
lub
Zastąp date_time nazwą kolumny, której chcesz użyć do wstawienia godziny.
źródło
Chociaż istnieje wiele akceptowanych odpowiedzi, myślę, że ten sposób jest również możliwy:
Utwórz tabelę „serwerów” w następujący sposób :
Twoja instrukcja INSERT powinna wyglądać następująco :
Moje środowisko:
Laptop Core i3 z systemem Windows i 4 GB pamięci RAM, a powyższy przykład wykonałem na MySQL Workbench 6.2 (wersja 6.2.5.0, kompilacja 397 64 bity)
źródło
Tak, możesz użyć
CURRENT_TIMESTAMP()
polecenia.Zobacz tutaj: Funkcje daty i czasu
źródło
źródło
Prawidłowa odpowiedź to SYSDATE () .
Możemy zmienić to zachowanie i sprawić, by
NOW()
zachowywał się w taki sam sposób, jakSYSDATE()
ustawiając argument wiersza poleceń sysdate_is_now naTrue
.Zauważ, że
NOW()
(który maCURRENT_TIMESTAMP()
jako alias) różni się odSYSDATE()
w subtelny sposób:Jak wskazał Erandi , najlepiej jest utworzyć tabelę z
DEFAULT
klauzulą, aby kolumna została automatycznie wypełniona sygnaturą czasową podczas wstawiania nowego wiersza:Jeśli chcesz, aby bieżąca data była w formacie epoki , możesz użyć UNIX_TIMESTAMP () . Na przykład:
ustąpi
Związane z:
źródło
W projektowaniu baz danych bardzo polecam używanie Unixtime w celu zapewnienia spójności i wydajności indeksowania / wyszukiwania / porównywania.
Zawsze można później przekonwertować na formaty czytelne dla człowieka, dokonując internacjonalizacji, ponieważ jest to najwygodniejsze dla każdego.
źródło
Jeśli zmienisz wartość domyślną,
CURRENT_TIMESTAMP
jest to większa wydajność,źródło
Możesz używać nie tylko
now()
, ale takżecurrent_timestamp()
ilocaltimestamp()
. Głównym powodem nieprawidłowego wyświetlania datownika jest wstawianie NOW () z pojedynczymi cudzysłowami ! Nie działało to dla mnie w MySQL Workbench, ponieważ to IDE dodało pojedyncze cudzysłowy dla funkcji mysql i nie rozpoznałem go od razu)Nie używaj funkcji z pojedynczymi cudzysłowami, jak w MySQL Workbench. To nie działa.
źródło
źródło