Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्या MySQL में UNIX_TIMESTAMP डिफ़ॉल्ट के साथ एक कॉलम बनाना संभव है?

जिस तरह से MySQL TIMESTAMP को लागू करता है डेटा प्रकार, यह वास्तव में डेटाबेस में युग का समय संग्रहीत कर रहा है। तो आप बस एक TIMESTAMP का उपयोग कर सकते हैं CURRENT_TIMESTAMP . के डिफ़ॉल्ट के साथ कॉलम और UNIX_TIMESTAMP() लागू करें यदि आप इसे एक इंट के रूप में प्रदर्शित करना चाहते हैं:

CREATE TABLE foo(
  created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

insert into foo values (current_Date()),(now());

select unix_timestamp(created) from foo;
+-------------------------+
| unix_timestamp(created) |
+-------------------------+
|              1300248000 |
|              1300306959 |
+-------------------------+
2 rows in set (0.00 sec)

हालाँकि, यदि आप वास्तव में चाहते हैं कि कॉलम का डेटाटाइप INT हो , आप R. Bemrose के सुझाव का उपयोग कर सकते हैं और इसे ट्रिगर के माध्यम से सेट कर सकते हैं:

CREATE TABLE foo(
  created INT NULL
);

delimiter $$

create trigger tr_b_ins_foo before insert on foo for each row
begin
  if (new.created is null)
  then
    set new.created = unix_timestamp();
  end if;
end $$

delimiter ;


insert into foo values (unix_timestamp(current_Date())), (null);

select created from foo;
+------------+
| created    |
+------------+
| 1300248000 |
| 1300306995 |
+------------+
2 rows in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GROUP BY में सभी मदों की संख्या के लिए गणना (*) का प्रतिशत प्राप्त करना

  2. CONCAT एकाधिक फ़ील्ड को एक फ़ील्ड में, एकल स्थान पर

  3. सी # मैसकल एक्ज़िक्यूटनक्वेरीसिंक एसिंक्रोनस नहीं है

  4. SHOW COLUMNS का समूह आउटपुट अल्पविराम-सीमांकित सूची में

  5. MySQL विशिष्ट मान पर कॉलम गिनता है