MySQL tarih dizesini Unix zaman damgasına dönüştürür


137

Aşağıdaki biçimi unix zaman damgasına nasıl dönüştürebilirim?

Apr 15 2012 12:00AM

DB almak biçiminin AMsonunda var gibi görünüyor . Aşağıdaki kullanarak denedim ama işe yaramadı:

CONVERT(DATETIME, Sales.SalesDate, 103) AS DTSALESDATE,  
CONVERT(TIMESTAMP, Sales.SalesDate, 103) AS TSSALESDATE

where Sales.SalesDate value is Apr 15 2012 12:00AM

1
Tarih DB'de metin olarak depolanıyor mu?
— Haziran'da strnk

1
Bu gerçekten bir MySQL sorusu mu? Kişisel sözdizimi böylece önermez.
— Álvaro González

1
MSSQL ile ilgili sorunun ne olduğunu görünüyor.
— Fedir RYKHTIK

Yanıtlar:


224

Bu Sorguyu şunun için deneyin: CONVERT DATETIME to UNIX TIME STAMP

SELECT UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))

Bu Sorgu CHANGE DATE FORMATE

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')),'%m-%d-%Y %h:%i:%p')

1
Thanks .Bu works.This da vb insert güncelleme, silme gibi diğer tablolarda kullanılabilir
— MR_AMDEV

1
Çözüm benim için çalıştı pek çok denemeler sonra: select * from (SELECT order_increment_id, FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE(order_date, '%d %M %Y %h:%i:%s %p')),'%Y-%m-%d') as order_date, email_sent FROM `packingslip_header` where email_sent=0) t where order_date >= '2019-11-13' ORDER BY order_increment_id ASCBu benim vardı tarihtir 31 Oct 2017 4:16:49 pmı kullanmak için gerekli böylece %d %M %Y %h:%i:%s %piçinSTR_TO_DATE
— Damodar Bashyal

35

Kesinlikle hem STR_TO_DATEtarihinizi bir MySQL standart tarih formatına dönüştürmek hem de UNIX_TIMESTAMPondan zaman damgası almak için kullanmanız gerekecektir.

Tarihinizin biçimi göz önüne alındığında,

UNIX_TIMESTAMP(STR_TO_DATE(Sales.SalesDate, '%M %e %Y %h:%i%p'))

Will size geçerli bir zaman damgası verir. STR_TO_DATEBiçim dizesi hakkında daha fazla bilgi için belgelere bakın .


10

Mevcut tarih için sadece UNIX_TIMESTAMP()MySQL sorgunuzu kullanın.


1
Orijinal gönderiden gelen soruya cevap vermez.
— Evan Donovan

sorgularında yalnızca şu anki tarihi dönüştürmesi gereken, sorunun bir kısmını yanıtlayan, ağ geçidi Evan'ınıza gerek duymayan insanlar içindir, insanlar buna ihtiyaç duyduklarını göstermek için aynı şeyi
— kaldırdılar

Orijinal soru belirli bir formatı dönüştürmek istedi; bu soruya cevap vermiyor. Bunu açıklığa kavuşturmak için düzenlerseniz aşağı oyu iptal edeceğim.
— Evan Donovan

ilk satırda bunun güncel tarih için olduğu açıklandı.
— stackMonk

Bu sorunun orijinal soruya olan ilişkisini açıklığa kavuşturmak ve bir örnek vermek için düzenledim.
— Evan Donovan

-5

Gönderen http://www.epochconverter.com/

SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())

My bad, SELECT unix_timestamp(time) Time format: YYYY-MM-DD HH:MM:SS or YYMMDD or YYYYMMDD. More on using timestamps with MySQL:

http://www.epochconverter.com/programming/mysql-from-unixtime.php

1
Bu cevap MSSQL içindir (bu sorunun bir karışıklığı olsa da).
— Salman A
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.