डेटाटाइम प्रारूप mySQL में वर्तमान तिथि डालें


97

मुझे समस्या हो रही है कि मेरे डेटाबेस में तारीख ठीक से डाली जाए।

$date = date('m/d/Y h:i:s', time());

मैं इस प्रारूप का उपयोग करता हूं, और, यह सही ढंग से गूँजता है, हालांकि, जब, मैं सम्मिलित करता हूं

mysql_query("INSERT INTO table 
(dateposted) 
VALUES ('$date')");

यह सफलतापूर्वक काम करने के लिए प्रकट नहीं होता है, और, समय 00:00:00 तक रहता है यदि आप उस समाधान को पा सकते हैं जो बहुत अच्छा होगा, धन्यवाद।


2
डेटपोस्ट डेटाइम फॉर्मेट है।
CCates

जवाबों:


222

यदि आप वर्तमान समय को स्टोर करना चाहते हैं तो बस MYSQL के कार्यों का उपयोग करें।

mysql_query("INSERT INTO `table` (`dateposted`) VALUES (now())");

यदि आपको इसे करने के लिए PHP का उपयोग करने की आवश्यकता है, तो प्रारूप Y-m-d H:i:sऐसा प्रयास करें

$date = date('Y-m-d H:i:s');
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$date')");

21
लेकिन यह MySQL सर्वर लोकेल / टाइमज़ोन का उपयोग करेगा। यदि यू के पास अपाचे / पीएचपी और माईएसक्यूएल अलग-अलग सर्वर पर हैं और टाइमजोन उनमें से किसी एक में गलत है तो यूएलई के पास अलग-अलग मूल्य होंगे।
जेफ_एलीफसन

3
@Jeff_Alieffson सही है। का उपयोग करना UTC_TIMESTAMP()( dev.mysql.com/doc/refman/5.5/en/… ) के बजाय पसंद किया जाता हैNOW()
एजाज़

मैंने वही कोशिश की लेकिन मुझे 0000-00-00 00:00:00 मिल रहे हैं और मेरा डेटाटाइप डेटाइम है। इसमें कोई मदद?
user9437856

Mysql_query () के बजाय PDO का उपयोग करना बहुत अच्छा होगा, नहीं?
DaWe



6

NOW()MySQL तालिका में वर्तमान दिनांक और समय सम्मिलित करने के लिए उपयोग किया जाता है। डेटाटाइप्स वाले सभी क्षेत्र DATETIME, DATE, TIME & TIMESTAMPइस फ़ंक्शन के साथ अच्छे काम करते हैं।

YYYY-MM-DD HH: मिमी: एसएस

प्रदर्शन:

निम्नलिखित कोड के उपयोग को दर्शाता है NOW()

INSERT INTO auto_ins
(MySQL_Function, DateTime, Date, Time, Year, TimeStamp)
VALUES
(“NOW()”, NOW(), NOW(), NOW(), NOW(), NOW());

5

निम्न क्वेरी के रूप में typeनामित कॉलम का सेट :datepostedDATETIME

INSERT INTO table (`dateposted`) VALUES (CURRENT_TIMESTAMP)

1

" डेटाइम " इस तरह की तारीख की उम्मीद करता है: YYYY-MM-DD HH: MM: SS

इसलिए अपनी तिथि को उस तरह प्रारूपित करें जब आप सम्मिलित कर रहे हैं।


इसलिए मैं तारीख ("YYYY / MM / DD HH: MM: SS", समय) () करेगा?
CC11

नहीं? डैश का उपयोग करें (-) स्लैश (/) नहीं।
Jan Hančič

1
     <?php $date= date("Y-m-d");
$time=date("H:m");
$datetime=$date."T".$time;
mysql_query(INSERT INTO table (`dateposted`) VALUES ($datetime));
?>

<form action="form.php" method="get">
<input type="datetime-local" name="date" value="<?php echo $datetime; ?>">
<input type="submit" name="submit" value="submit">


1
ढेर अतिप्रवाह में आपका स्वागत है! अच्छे उत्तर समझाने के साथ-साथ कोड भी प्रदान करते हैं। यह कोड कैसे काम करता है और यह सबसे अच्छा विकल्प क्यों है, इसके बारे में स्पष्टीकरण शामिल करने के लिए अपने उत्तर को अपडेट करने पर विचार करें।
अजीन

1

यदि आप PHP से तारीख पास करते हैं तो आप STR_TO_DATE()mysql फ़ंक्शन का उपयोग करके किसी भी प्रारूप का उपयोग कर सकते हैं । चलिए conseder आप html फॉर्म के माध्यम से तारीख डाल रहे हैं

$Tdate = "'".$_POST["Tdate"]."'" ;    //   10/04/2016
$Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y')"  ;  
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$Tdate')");

datepostedMysql होना चाहिए dateप्रकार। या mysql
किसी मामले में 00:00:00 जोड़ता है आप डीबी में एक साथ तारीख और समय को बेहतर ढंग से सम्मिलित करते हैं ताकि आप घंटों और सेकंड के साथ गणना कर सकें। ()।

$Tdate=date('Y/m/d H:i:s') ; // this to get current date as text .
$Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y %H:%i:%s')"  ;  

1

इसे आसान और कुशल बनाने का सबसे अच्छा तरीका है:

CREATE TABLE table_name (
field1,
..
..
time_updated timestamp default current_timestamp
)

अब, जब आप तालिका में एक पंक्ति सम्मिलित करते हैं, तो आप इस फ़ील्ड को छोड़ सकते हैं ( time_updated) क्योंकि यह वर्तमान समय में डिफ़ॉल्ट मान के साथ भर जाएगा


0

बस अपने समयक्षेत्र के साथ उपयोग करें:

date_default_timezone_set('Asia/Kolkata');      
$date=date("Y/m/d h:i:sa");

0

$ तारीख = तारीख ('Ymd H: i: s'); प्रकार के साथ: 'डेटाइम' ने मेरे लिए बहुत अच्छा काम किया क्योंकि मैं पूरी तारीख और टाइमस्टैम्प प्रिंट करना चाहता था।

$ तारीख = तारीख ('Ymd H: i: s'); $ Stmtc-> bindParam (2, $ तिथि);


-1

मेरा मानना ​​है, आपको अपने कोड को थोड़ा बदलना होगा, जैसे आपके डेटाबेस में दर्ज प्रकार के साथ।

mysql_query("INSERT INTO table (`dateposted`) VALUES ($datetime)");

आशा है, पूरी तरह से काम करेंगे।


-2

इसे इस्तेमाल करो

$date = date('m/d/Y h:i:s', time());

और फिर MYSQL में करें

type=varchar

फिर दिनांक और समय सफलतापूर्वक डाला जाएगा


आपका पहला कार्य वही है जो प्रश्न में उपयोग किया गया है। और इस जवाब के बाकी 5 साल पुराने सवाल को फिर से खोलना नहीं है। कृपया बताएं कि आपको क्यों लगता है कि आपका समाधान उन लोगों से बेहतर है जो 5 साल पहले पोस्ट किए गए थे।
मैथ्यू सियारामितारो

क्योंकि पुराने प्रश्न में डेटा टाइप के बारे में नहीं बताया गया है
vikas pandey

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