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.