找到 4219 篇文章 關於 MySQLi

在 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)上述查詢將分別將值 '2017'、'15'、'4' 傳遞給 'year'、'week' 和 'day' 變數。然後在下面查詢中應用公式後,我們可以得到日期。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)上述查詢將值 '1984-01-17' 傳遞給 'dob' 變數。然後在下面查詢中應用公式後,我們可以得到年齡(以年為單位)。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 模式為 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 模式。如果我們啟用了 ALLOW_INVALID_DATES 模式,則 MySQL 會將超出範圍的值轉換為全零(即 '0000:00:00 00:00:00'),並在不產生任何錯誤或警告的情況下將它們儲存在表中。例如,我們可以按如下方式更改 SQL 模式,然後插入超出範圍的值: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' 上具有 PRIMARY KEY 約束,如下所示: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 個位元組用於儲存小數秒資料... 閱讀更多

如何將 AUTO_INCREMENT 應用於列?

George John
更新於 2019-07-30 22:30:21

134 次檢視

AUTO_INCREMENT 意味著該列將自動獲取值。為了說明這一點,我們建立了一個名為 'employees' 的表,如下所示: mysql> Show Create Table employees\G *************************** 1. row *************************** Table: employees Create Table: CREATE TABLE `employees` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(35) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)從上述結果集中,我們可以看到列 id 被賦予了 auto-increment 選項。現在,當我們在 Name 中插入值時... 閱讀更多

如何在 MySQL 表中按日期搜尋記錄?

Prabhas
更新於 2020-01-28 09:22:39

888 次檢視

假設我們有一個名為“Order123”的表,其中包含ProductName、Quantity和OrderDate列,如下所示:
mysql> Select * from Order123;
+-------------+----------+------------+
| ProductName | Quantity | OrderDate  |
+-------------+----------+------------+
| A           | 100      | 2017-05-25 |
| B           | 105      | 2017-05-25 |
| C           | 55       | 2017-05-25 |
| D           | 250      | 2017-05-26 |
| E           | 500      | 2017-05-26 |
| ... 閱讀更多

廣告

© . All rights reserved.