মাইএসকিউএল একটি টাইমস্ট্যাম্প হিসাবে n দিন আগে তারিখ পান


100

মাইএসকিউএলে, আমি কীভাবে একটি টাইমস্ট্যাম্প পেতে পারি, 30 দিন আগে বলে?

কিছুটা এইরকম:

select now() - 30

ফলাফলটি একটি টাইমস্ট্যাম্প ফিরে আসবে।


আমি মনে করি আপনি DATE_SUB এর পরে রয়েছেন
জিজলিস

4
টাইমস্ট্যাম্পের কি ফর্ম্যাট? মাইএসকিউএল তারিখ ফাংশনগুলির সাথে কাজ করে এমন ফর্ম্যাটটির সাথে পরিচিত এবং একটি ইউনিক্স স্টাইলের টাইমস্ট্যাম্প রয়েছে।
জোবার্ট

আমি মাইএসকিউএল টাইমস্ট্যাম্পের পরে আছি।
বেন নোল্যান্ড 13

উত্তর:


184

আপনি যা চান তার উপর নির্ভর করে 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) এটিকে একটি টাইমস্ট্যাম্প প্রকারে জোর করছে। dev.mysql.com/doc/refman/5.1/en/…
jsh

3

আপনি ব্যবহার করতে পারেন:

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

ইউনিক্স টাইমস্ট্যাম্পগুলির জন্য বা:

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

স্ট্যান্ডার্ড মাইএসকিউএল তারিখ বিন্যাসের জন্য।


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> এই_টাইমস্ট্যাম্প ব্যবহার করার প্রয়োজন হলে নেতিবাচক এবং ধনাত্মক মানগুলি ফিরিয়ে দেবে

কিন্তু এই

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

শুধুমাত্র ইতিবাচক, ঘন্টা ফিরে আসবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.