找到 4379 篇文章 關於 MySQL

如何在 MySQL 中查詢兩個指定日期之間的工作日?

Jennifer Nicholas
更新於 2020-01-28 10:00:44

725 次瀏覽

藉助 DATEDIFF(expr1, expr2),我們可以找到兩個指定日期之間的工作日。例如,如果我們想找到“2017-05-27”和“2017-05-23”之間的工作日,則以下將是 MySQL 查詢:mysql> Select DATEDIFF('2017-05-27','2017-05-23') AS 'Total Business Days'; +----------------------+ | Total Business Days  | +----------------------+ | 4                    | +----------------------+ 1 row in set (0.00 sec)

我們如何使用 MySQL 生成的列來模擬 CHECK 約束?

Akshaya Akki
更新於 2020-06-19 13:39:16

98 次瀏覽

眾所周知,MySQL 支援用於參照完整性的外部索引鍵,但不支援 CHECK 約束。但是,我們可以使用觸發器來模擬它們。以下示例可以說明這一點:示例假設我們有一個名為“car”的表,它可以具有固定的語法註冊號,例如兩個字母、一個短劃線、三個數字、一個短劃線、兩個字母,如下所示:mysql> Create table car2 (number char(9)); Query OK, 0 rows affected (0.32 sec) mysql> Insert into car2 values('AB-235-YZ'); Query OK, 1 row affected (0.10 sec) 上面的值是有效的,但是…… 閱讀更多

在 MySQL 中,我們如何透過提供年份、週數和星期幾來計算日期?星期幾?

Vrundesha Joshi
更新於 2020-01-28 10:04:30

79 次瀏覽

我們可以按如下方式計算日期:mysql> SET @year=2017, @week=15, @day=4; Query OK, 0 rows affected (0.00 sec) 以上查詢將分別在“year”、“week”和“day”變數中傳遞值“2017”、“15”、“4”。然後在應用以下查詢中的公式後,我們可以得到日期。mysql> SELECT Str_To_Date( Concat(@year,'-',@week,'-',If(@day=7,0,@day) ), '%Y-%U-%w' ) AS Date; +--------------+ | Date         | +--------------+ | 2017-04-13   | +--------------+ 1 row in set (0.00 sec)

我們如何使用檢視來模擬 CHECK 約束?

Vikyath Ram
更新於 2020-06-19 13:39:38

75 次瀏覽

眾所周知,MySQL 支援用於參照完整性的外部索引鍵,但不支援 CHECK 約束。但是,我們可以使用觸發器來模擬它們。以下示例可以說明這一點:示例假設我們有一個名為“car1”的表,它可以具有固定的語法註冊號,例如兩個字母、一個短劃線、三個數字、一個短劃線、兩個字母,如下所示:mysql> Create table car1 (number char(9)); Query OK, 0 rows affected (0.32 sec) mysql> Insert into car1 values('AB-235-YZ'); Query OK, 1 row affected (0.10 sec) 上面的值是有效的,但是…… 閱讀更多

如何在 MySQL 中根據出生日期計算年齡(以年為單位)?

usharani
更新於 2020-01-28 10:08:56

285 次瀏覽

我們可以按如下方式根據出生日期計算年齡(以年為單位):mysql> SET @dob = '1984-01-17'; Query OK, 0 rows affected (0.00 sec) 以上查詢將在“dob”變數中傳遞值“1984-01-17”。然後在應用以下查詢中的公式後,我們可以得到年齡(以年為單位)。mysql> Select Date_format( From_Days( To_Days(Curdate()) - To_Days(@dob) ), '%Y' ) + 0 AS ‘Age in years; +---------------+ | ‘Age in years’| +---------------+ |   33          | +---------------+ 1 row in set (0.00 sec)

我們如何允許 MySQL 儲存無效日期?

Rishi Rathor
更新於 2020-01-28 10:11:12

273 次瀏覽

啟用 SQL MODE 為 ALLOW_INVALID_DATES 後,MySQL 也能夠將無效日期儲存到表中。以下示例可以幫助理解這一點:mysql> Insert into order1234(ProductName, Quantity, Orderdate) values('B',500,'2015-11-31'); Query OK, 1 row affected (0.06 sec) mysql> Select * from order1234; +-------------+----------+--------------+ | ProductName | Quantity | OrderDate    | +-------------+----------+--------------+ | A           | 500      | 0000-00-00   | | B           | 500      | 2015-11-31   | +-------------+----------+--------------+ 2 rows in set (0.00 sec)我們可以看到 MySQL 也將無效日期插入到表中。

當 MySQL 遇到超出範圍的日期時會發生什麼?

varun
更新於 2020-01-28 10:13:49

367 次瀏覽

MySQL 在遇到超出範圍或無效日期時的響應將取決於 SQL MODE。如果我們啟用了 ALLOW_INVALID_DATES 模式,則 MySQL 將把超出範圍的值轉換為全零(即“0000:00:00 00:00:00”),並將其儲存到表中,而不會產生任何錯誤或警告。例如,我們可以按如下方式更改 SQL MODE,然後插入超出範圍的值:mysql> set sql_mode = 'ALLOW_INVALID_DATES'; Query OK, 0 rows affected (0.00 sec) mysql> Insert into order1234(productname, quantity, orderdate) values('A', 500, '999-05-100'); Query OK, 1 row affected, 1 warning (0.13 sec) mysql> Select * from order1234; ... 閱讀更多

我們如何使用觸發器來模擬 CHECK 約束?

Rama Giri
更新於 2020-06-19 13:38:03

166 次瀏覽

眾所周知,MySQL 支援用於參照完整性的外部索引鍵,但不支援 CHECK 約束。但是,我們可以使用觸發器來模擬它們。以下示例可以說明這一點:示例假設我們有一個名為“car”的表,它可以具有固定的語法註冊號,例如兩個字母、一個短劃線、三個數字、一個短劃線、兩個字母,如下所示:mysql> Create table car (number char(9)); Query OK, 0 rows affected (0.32 sec) mysql> Insert into car values('AB-235-YZ'); Query OK, 1 row affected (0.10 sec) 上面的值是有效的,但是…… 閱讀更多

我們如何為多列分配 FOREIGN KEY 約束?

Monica Mona
更新於 2020-06-19 13:37:15

4K+ 次瀏覽

MySQL 允許我們在表中的多列上新增 FOREIGN KEY 約束。條件是子表中的每個外部索引鍵必須引用不同的父表。示例假設我們有一個表“customer2”,它在欄位“cust_unq_id”上具有主鍵約束,如下所示:mysql> describe customer2; +-------------+-------------+------+-----+---------+-------+ | Field       | Type        | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | cust_id     | int(11)     | YES  |     | NULL    |       | | First_name  | varchar(20) | ... 閱讀更多

MySQL DATETIME 和 TIMESTAMP 資料型別之間有什麼區別?

Nancy Den
更新於 2020-06-19 13:33:54

10K+ 次瀏覽

這兩種資料型別都以“YYYY-MM-DD HH:MM:SS”格式儲存資料,並且包含日期和時間。儘管有這些相似之處,但它們仍然存在以下差異:範圍 - Datetime 資料型別支援介於 1000-01-01 00:00:00 和 9999-12-31 23:59:59 之間的日期和時間。但是,timestamp 資料型別支援介於“1970-01-01 00:00:01”和“2038-01-19 08:44:07”之間的日期和時間。大小 - Datetime 需要 5 個位元組,以及用於儲存小數秒資料的額外 3 個位元組。另一方面,timestamp 資料型別需要 4 個位元組,以及用於儲存小數秒資料的額外 3 個位元組…… 閱讀更多

廣告