MySQL को टाइमस्टैंडैम्प के रूप में n दिन पहले की तारीख मिलती है


97

MySQL में, मुझे 30 दिन पहले से टाइमस्टैम्प कैसे मिलेगा?

कुछ इस तरह:

select now() - 30

परिणाम एक टाइमस्टैम्प वापस आ जाना चाहिए।


मुझे लगता है कि आप DATE_SUB के बाद हैं ।
2

1
टाइमस्टैम्प का क्या स्वरूप है? वहाँ प्रारूप लोग हैं, जो MySQL DATE फ़ंक्शंस के साथ काम करते हैं, वे परिचित हैं और एक UNIX शैली टाइमस्टैम्प है।
जोबेत

मैं MySQL टाइमस्टैम्प के बाद हूँ।
बेन नोलैंड

जवाबों:


179

DATE_SUB आप जो चाहते हैं उसके आधार पर इसका हिस्सा करेंगे

mysql> SELECT DATE_SUB(NOW(), INTERVAL 30 day);
2009-06-07 21:55:09

mysql> SELECT TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day));
2009-06-07 21:55:09

mysql> SELECT UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day));
1244433347

11
पहली और दूसरी क्वेरी के साथ क्या अलग है?
कोडर

5
ऐसा प्रतीत होता है (v1) DATE_SUB इनपुट के आधार पर DATETIME या STRING लौटाएगा। TIMESTAMP (v2) इसे TIMESTAMP प्रकार के लिए मजबूर कर रहा है। dev.mysql.com/doc/refman/5.1/en/…
jsh

3

आप उपयोग कर सकते हैं:

SELECT unix_timestamp(now()) - unix_timestamp(maketime(_,_,_));

यूनिक्स टाइमस्टैम्प के लिए या:

SELECT addtime(now(),maketime(_,_,_));

मानक MySQL दिनांक प्रारूप के लिए।


0

यदि आपको टाइमस्टैम्प से नकारात्मक घंटों की आवश्यकता है

mysql>SELECT now( ) , FROM_UNIXTIME( 1364814799 ) , HOUR( TIMEDIFF( now( ) , FROM_UNIXTIME( 1364814799 ) ) ) , TIMESTAMPDIFF( HOUR , now( ) , FROM_UNIXTIME( 1364814799 ) ) 
2013-06-19 22:44:15     2013-04-01 14:13:19     1904    -1904

यह

TIMESTAMPDIFF( HOUR , now( ) , FROM_UNIXTIME( 1364814799 ) ) 

नकारात्मक और सकारात्मक मान लौटाएगा, अगर आपको x> this_timestamp का उपयोग करने की आवश्यकता है

लेकिन यह

HOUR( TIMEDIFF( now() , FROM_UNIXTIME( 1364814799 ) ) )

केवल सकारात्मक लौटेगा, घंटे

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.