Hướng dẫn mysql store iso 8601 - cửa hàng mysql iso 8601

Tôi nghĩ rằng việc giữ các giá trị thời gian của bạn trong lĩnh vực loại

SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
0 sẽ là một cách tự nhiên.

Từ kinh nghiệm của riêng tôi với ứng dụng PHP hiện tại của tôi, chỉ các hoạt động

SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
1 /
SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
2 liên quan đến thông tin này có thể có vấn đề.

Một trong những giải pháp có thể [giả sử rằng bạn sử dụng kiểu dữ liệu

SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
0] để thực hiện đúng toàn bộ quá trình có thể là cách tiếp cận sau:

Đọc các giá trị DateTime để sử dụng PHP

  1. Có được các trường
    SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
    
    0 từ cơ sở dữ liệu của bạn chuyển đổi chúng trong truy vấn thành đại diện chuỗi dưới dạng
    SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
    
    5 bằng cách sử dụng chức năng MySQL
    SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
    
    6 với chuỗi định dạng
    SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
    
    7 [Docs trên Date_Format]in the query to string representation in the form of
    SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
    
    5 by using
    SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
    
    6 MySQL function with
    SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
    
    7 formatting string [docs on DATE_FORMAT]
  2. Đọc giá trị cột được tìm nạp theo định dạng cụ thể này và chuyển đổi nó trong PHP từ chuỗi thành biểu diễn thời gian thực có giá trị cho PHP [chẳng hạn như các đối tượng lớp
    SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
    
    8 và phương pháp tĩnh ____89 được đưa ra
    mysql> SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY] setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
    
    try {
        // run the query aquring 1 example row with DATETIME data 
        // converted with MySQL DATE_FORMAT function to its string representation 
        // in the chosen format [in our case: ISO 8601 / UTC]
        $stmt = $db->query["SELECT DATE_FORMAT[dt_column, '%Y-%m-%dT%H:%i:%sZ'] AS formatted_dt_col"
                            ." FROM your_table LIMIT 1"]; 
    
        if[$stmt !== FALSE] {
            $row = $stmt->fetch[PDO::FETCH_ASSOC];
    
            // convert the acquired string representation from DB 
            // [i.e. '2011-10-02T23:25:42Z' ]
            // to PHP DateTime object which has all the logic of date-time manipulation:    
            $dateTimeObject = DateTime::createFromFormat['Y-m-d\TH:i:s\Z', $row['formatted_dt_col']];
    
            // the following should print i.e. 2011-10-02T23:25:42Z
            echo $dateTimeObject->format['Y-m-d\TH:i:s\Z'];  
    
            // now let's write PHP DateTime class object '$dateTimeObject' 
            // back to the database
            $stmtInsertDT = $db->prepare["INSERT INTO your_table[dt_column] " 
                                 . " VALUES [ STR_TO_DATE[:par_formatted_dt_column, '%Y-%m-%dT%H:%i:%sZ'] ]"];
    
            $dtAsTextForInsert = $dateTimeObject->format['Y-m-d\TH:i:s\Z'];
    
            // convert '$dateTimeObject' to its ISO 8601 / UTC text represantation
            // in order to be able to put in in the query using PDO text parameter
            $stmtInsertDT->bindParam[':par_formatted_dt_column', $dtAsTextForInsert, PDO::PARAM_STR];
    
            $stmtInsertDT->execute[];
    
            // So the real insert query being perform would be i.e.:
            /*
               INSERT INTO your_table[dt_column] 
               VALUES [ STR_TO_DATE['2011-10-02T23:25:42Z', '%Y-%m-%dT%H:%i:%sZ'] ]
            */
        }
    }
    catch[\PDOException $pexc] {
     // serve PDOException
    }
    catch[\Exception $exc] {
    // in case of no-PDOException, serve general exception
    }
    

    Cách tiếp cận này đã giúp tôi rất nhiều trong các giá trị thời gian hoạt động giữa cơ sở dữ liệu PHP và MySQL.

    Tôi hy vọng nó cũng có thể hữu ích cho bạn.

    Z là người chỉ định vùng cho phần bù UTC bằng không. "09:30 UTC" do đó được đại diện là "09: 30Z" hoặc "T0930Z". "14:45:15 UTC" sẽ là "14: 45: 15Z" hoặc "T144515Z". Hậu tố Z trong biểu diễn thời gian ISO 8601 đôi khi được gọi là "thời gian zulu" vì cùng một chữ cái được sử dụng để chỉ định múi giờ zulu.

    Chúng ta có thể thay đổi định dạng ngày trong mysql không?

    • Trả lại năm và tuần cho một ngày. Năm kết quả có thể khác với năm trong cuộc tranh luận về ngày đầu tiên và tuần cuối cùng của năm. Trả về
      SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
      
      23 nếu
      SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
      
      05 là
      SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
      
      23.
    • Số tuần khác với những gì hàm
      SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
      
      32 sẽ trả về [
      SELECT DATE_FORMAT[date, '%Y-%m-%dT%TZ'] AS date_formatted
      FROM table_name 
      ORDER BY id DESC 
      
      90] cho các đối số tùy chọn
      SELECT DATE_FORMAT[date, '%Y-%m-%dT%TZ'] AS date_formatted
      FROM table_name 
      ORDER BY id DESC 
      
      90 hoặc
      DATE_FORMAT[ CONVERT_TZ[`timestamp`, @@session.time_zone, '+00:00']  ,'%Y-%m-%dT%TZ']
      
      25, vì
      SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
      
      32 sau đó trả về tuần trong bối cảnh của năm nhất định.
    • ISO 8601 đại diện cho ngày và thời gian bằng cách bắt đầu với năm, sau đó là tháng, ngày, giờ, phút, giây và mili giây. Ví dụ, 2020-07-10 15: 00: 00.000, đại diện cho ngày 10 tháng 7 năm 2020 lúc 3 giờ chiều. [Trong thời gian địa phương vì không có múi giờ bù được chỉ định nhiều hơn ở bên dưới].
    • MySQL sử dụng định dạng Yyyy-MM-DD để lưu trữ giá trị ngày. Định dạng này được cố định và không thể thay đổi nó. Ví dụ: bạn có thể thích sử dụng định dạng MM-DD-Yyyy nhưng bạn không thể. Thay vào đó, bạn tuân theo định dạng ngày tiêu chuẩn và sử dụng hàm DATE_FORMAT để định dạng ngày theo cách bạn muốn.

    SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
    

    Z ở định dạng ngày ISO 8601 là gì?

    Z là người chỉ định vùng cho phần bù UTC bằng không. "09:30 UTC" do đó được đại diện là "09: 30Z" hoặc "T0930Z". "14:45:15 UTC" sẽ là "14: 45: 15Z" hoặc "T144515Z". Hậu tố Z trong biểu diễn thời gian ISO 8601 đôi khi được gọi là "thời gian zulu" vì cùng một chữ cái được sử dụng để chỉ định múi giờ zulu.Feb 17, 2012 at 1:45

    Chúng ta có thể thay đổi định dạng ngày trong mysql không?

    SELECT DATE_FORMAT[date, '%Y-%m-%dT%TZ'] AS date_formatted
    FROM table_name 
    ORDER BY id DESC 
    

    Thay đổi định dạng Curdate [] [ngày hiện tại] trong MYSQL Định dạng ngày hiện tại là 'Yyyy-MM-DD'. Để thay đổi định dạng ngày hiện tại, bạn có thể sử dụng date_format [].Feb 17, 2012 at 1:48

    Tôi đang cố gắng lấy ngày từ cơ sở dữ liệu của mình trong một dấu thời gian tiêu chuẩn và hiển thị nó dưới dạng ISO 8601. Tôi không thể dễ dàng thực hiện nó trong PHP vì vậy tôi đang cố gắng thực hiện nó trong câu lệnh SELECT của mình. Đây là những gì tôi có, nhưng nó hiển thị một lỗi:ypercubeᵀᴹ

    Nội phân chính18 gold badges170 silver badges232 bronze badges

    7

    Tôi đang làm gì sai?

    DATE_FORMAT[ CONVERT_TZ[`timestamp`, @@session.time_zone, '+00:00']  ,'%Y-%m-%dT%TZ']
    

    hỏi ngày 17 tháng 2 năm 2012 lúc 1:45

    SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
    
    02 phải nằm trong danh sách
    SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
    
    03:20 gold badges147 silver badges263 bronze badges

    Đã trả lời ngày 8 tháng 3 năm 2016 lúc 22:30Mar 8, 2016 at 22:30

    OFUMBIOFUMBIofumbi

    1953 Huy hiệu bạc10 Huy hiệu đồng3 silver badges10 bronze badges

    Date_format chỉ hoạt động trên các cột ngày MySQL, không phải dấu thời gian.

    Dấu thời gian UNIX là một số nguyên chứa số giây kể từ ngày 1 tháng 1 năm 1970 UTC. Để định dạng cái này dưới dạng ngày ISO 8601, bạn cần sử dụng hàm từ_unixtime [] thay thế.

    From_unixtime có cùng các chuỗi định dạng như Date_Format, vì vậy để định dạng một cột có tên 'đã tạo' bạn

    SELECT created /* e.g. 1288799488 */ , 
           FROM_UNIXTIME[created,'%Y-%m-%dT%TZ'] /* e.g. 2010-11-03T08:51:28Z */
    FROM table_name
    

    Đã trả lời ngày 4 tháng 5 năm 2013 lúc 20:18May 4, 2013 at 20:18

    Tải trường ngày từ cơ sở dữ liệu và chuyển đổi nó sang định dạng ISO với PHP là thẳng; Xem chuỗi định dạng

    SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
    
    04 thành PHP
    SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
    
    05: //www.php.net/manual/en/function.date.php

    echo date['c']; // expected "2013-03-08T14:45:37+05:00"
    

    Đã trả lời ngày 8 tháng 3 năm 2013 lúc 19:46Mar 8, 2013 at 19:46

    Al xal the xAL the X

    9849 Huy hiệu bạc15 Huy hiệu Đồng9 silver badges15 bronze badges

    2

    Tại sao khó làm điều đó trong PHP?

    date["Y-m-d\TH:i:sO",strtotime[$sqldata['time']]];
    

    Dù sao,

    SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
    
    6 cần phải có trong các trường để chọn, không được giải quyết đến cuối cùng.

    Đã trả lời ngày 17 tháng 2 năm 2012 lúc 1:50Feb 17, 2012 at 1:50

    3

    SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
    
    07 nên có trong mệnh đề
    SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
    
    08.

    SELECT DATE_FORMAT[date, '%Y-%m-%dT%TZ'] 
    FROM table_name 
    ORDER BY id DESC 
    

    Đã trả lời ngày 17 tháng 2 năm 2012 lúc 1:53Feb 17, 2012 at 1:53

    Bạn nên di chuyển DATE_FORMAT sang phần chọn của truy vấn như sau:

    SELECT *, DATE_FORMAT[date,"%Y-%m-%dT%TZ"] AS date FROM table_name ORDER BY id DESC
    

    Đã trả lời ngày 17 tháng 2 năm 2012 lúc 1:49Feb 17, 2012 at 1:49

    Andreas Stokholmandreas StokholmAndreas Stokholm

    1.6571 Huy hiệu vàng12 Huy hiệu bạc17 Huy hiệu đồng1 gold badge12 silver badges17 bronze badges

    Phần này mô tả các chức năng có thể được sử dụng để thao tác các giá trị thời gian. Xem Phần & NBSP; 11.2, Loại dữ liệu ngày và thời gian, để biết mô tả phạm vi của các giá trị mỗi ngày và loại thời gian và các định dạng hợp lệ trong đó các giá trị có thể được chỉ định.

    Dưới đây là một ví dụ sử dụng các chức năng ngày. Truy vấn sau chọn tất cả các hàng có giá trị

    SELECT * FROM table_name ORDER BY id DESC DATE_FORMAT[date,"%Y-%m-%dT%TZ"]
    
    09 trong vòng 30 ngày qua:

    mysql> SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY]  SELECT something FROM tbl_name
        -> WHERE DATE_SUB[CURDATE[],INTERVAL 30 DAY] 

Bài Viết Liên Quan

Chủ Đề