Hướng dẫn get age from birthdate mysql - lấy tuổi từ ngày sinh mysql

83

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Nếu tôi có ngày sinh của một người được lưu trữ trong một bảng dưới dạng dd-mm-yyyy, và tôi trừ nó từ ngày hiện tại, ngày nào được trả về?

Làm thế nào tôi có thể sử dụng định dạng được trả lại này để tính độ tuổi của ai đó?

Hướng dẫn get age from birthdate mysql - lấy tuổi từ ngày sinh mysql

Hỏi ngày 24 tháng 4 năm 2011 lúc 21:40Apr 24, 2011 at 21:40

user559142user559142user559142

11.9K48 Huy hiệu vàng115 Huy hiệu bạc179 Huy hiệu đồng48 gold badges115 silver badges179 bronze badges

3

Nếu giá trị được lưu trữ dưới dạng loại dữ liệu DateTime:

SELECT YEAR(CURRENT_TIMESTAMP) - YEAR(dob) - (RIGHT(CURRENT_TIMESTAMP, 5) < RIGHT(dob, 5)) as age 
  FROM YOUR_TABLE

Ít chính xác hơn khi bạn xem xét những năm bước nhảy:

SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
  FROM YOUR_TABLE t 

Hướng dẫn get age from birthdate mysql - lấy tuổi từ ngày sinh mysql

Đã trả lời ngày 24 tháng 4 năm 2011 lúc 22:24Apr 24, 2011 at 22:24

OMG Poniesomg PoniesOMG Ponies

318K79 Huy hiệu vàng511 Huy hiệu bạc494 Huy hiệu đồng79 gold badges511 silver badges494 bronze badges

9

SELECT TIMESTAMPDIFF (YEAR, YOUR_COLUMN, CURDATE()) FROM YOUR_TABLE AS AGE

Kiểm tra hình ảnh demo bên dưới

Hướng dẫn get age from birthdate mysql - lấy tuổi từ ngày sinh mysql

Đơn giản nhưng thanh lịch ..

Hướng dẫn get age from birthdate mysql - lấy tuổi từ ngày sinh mysql

MAZ

75010 Huy hiệu bạc17 Huy hiệu đồng10 silver badges17 bronze badges

Đã trả lời ngày 22 tháng 6 năm 2016 lúc 3:31Jun 22, 2016 at 3:31

Use:

select *,year(curdate())-year(dob) - (right(curdate(),5) < right(dob,5)) as age from your_table

Theo cách này, bạn xem xét thậm chí tháng và ngày sinh để có tính độ tuổi chính xác hơn.

Hướng dẫn get age from birthdate mysql - lấy tuổi từ ngày sinh mysql

Đã trả lời ngày 24 tháng 4 năm 2011 lúc 22:16Apr 24, 2011 at 22:16

Hướng dẫn get age from birthdate mysql - lấy tuổi từ ngày sinh mysql

Nicola Cossunicola CossuNicola Cossu

53.1K15 Huy hiệu vàng91 Huy hiệu bạc97 Huy hiệu đồng15 gold badges91 silver badges97 bronze badges

4

select floor(datediff (now(), birthday)/365) as age

Đã trả lời ngày 24 tháng 4 năm 2011 lúc 22:11Apr 24, 2011 at 22:11

lobster1234lobster1234lobster1234

7.63925 Huy hiệu bạc29 Huy hiệu đồng25 silver badges29 bronze badges

2

Simply:

DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(`birthDate`)), '%Y')+0 AS age

Đã trả lời ngày 15 tháng 2 năm 2013 lúc 9:56Feb 15, 2013 at 9:56

DamonSsondamonssonDamonsson

1.53214 Huy hiệu bạc25 Huy hiệu đồng14 silver badges25 bronze badges

1

Vì câu hỏi đang được gắn thẻ cho

SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
  FROM YOUR_TABLE t 
8, tôi có triển khai sau đây phù hợp với tôi và tôi hy vọng các lựa chọn thay thế tương tự sẽ có mặt cho các RDBM khác. Đây là SQL:

select YEAR(now()) - YEAR(dob) - ( DAYOFYEAR(now()) < DAYOFYEAR(dob) ) as age 
from table 
where ...

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

Mickeymoonmickeymoonmickeymoon

4.6705 Huy hiệu vàng30 Huy hiệu bạc53 Huy hiệu Đồng5 gold badges30 silver badges53 bronze badges

Thử cái này:

SET @birthday = CAST('1980-05-01' AS DATE);
SET @today = CURRENT_DATE();

SELECT YEAR(@today) - YEAR(@birthday) - 
  (CASE WHEN
    MONTH(@birthday) > MONTH(@today) OR 
    (MONTH(@birthday) = MONTH(@today) AND DAY(@birthday) > DAY(@today)) 
      THEN 1 
      ELSE 0 
  END);

Nó trở lại trong năm nay - năm sinh (người sẽ bao nhiêu tuổi trong năm nay sau sinh nhật) và điều chỉnh dựa trên việc người đó có sinh nhật trong năm nay hay không.

Nó không bị lỗi làm tròn của các phương pháp khác được trình bày ở đây.

Thích nghi tự do từ đây

Đã trả lời ngày 24 tháng 4 năm 2011 lúc 22:50Apr 24, 2011 at 22:50

SklivvzsklivvzSklivvz

30K24 Huy hiệu vàng118 Huy hiệu bạc169 Huy hiệu đồng24 gold badges118 silver badges169 bronze badges

Đơn giản chỉ cần làm

SELECT birthdate, (YEAR(CURDATE())-YEAR(birthdate)) AS age FROM `member` 

ngày sinh là tên trường giữ tên ngày sinh, hãy từ chối () từ năm () chỉ huy trừ năm () từ trường ngày sinh

Đã trả lời ngày 14 tháng 7 năm 2017 lúc 15:09Jul 14, 2017 at 15:09

Hướng dẫn get age from birthdate mysql - lấy tuổi từ ngày sinh mysql

1

Đây là cách tính độ tuổi trong MySQL:

select
  date_format(now(), '%Y') - date_format(date_of_birth, '%Y') - 
  (date_format(now(), '00-%m-%d') < date_format(date_of_birth, '00-%m-%d'))
as age from table

Đã trả lời ngày 10 tháng 2 năm 2012 lúc 8:13Feb 10, 2012 at 8:13

Mosty Mostachomosty MostachoMosty Mostacho

41.8K15 Huy hiệu vàng93 Huy hiệu bạc123 Huy hiệu Đồng15 gold badges93 silver badges123 bronze badges

0

Bạn có thể tạo một chức năng để làm điều đó:

SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
  FROM YOUR_TABLE t 
0

Bây giờ, bạn có thể nhận được tuổi từ một ngày:

SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
  FROM YOUR_TABLE t 
1

Nếu bạn hẹn hò ở định dạng y-m-d h: i: s, bạn có thể làm điều này:

SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
  FROM YOUR_TABLE t 
2

Bạn có thể sử dụng lại chức năng này ở bất cứ đâu;)

Đã trả lời ngày 26 tháng 9 năm 2012 lúc 15:09Sep 26, 2012 at 15:09

IdealMindidealMindIdealmind

1.24815 huy hiệu bạc8 Huy hiệu đồng15 silver badges8 bronze badges

1

Tôi thích sử dụng một chức năng theo cách này.

SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
  FROM YOUR_TABLE t 
3

Bây giờ để sử dụng

SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
  FROM YOUR_TABLE t 
4

HOẶC

SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
  FROM YOUR_TABLE t 
5

Đã trả lời ngày 15 tháng 2 năm 2013 lúc 0:23Feb 15, 2013 at 0:23

Có hai cách đơn giản để làm điều đó:

  1. SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
      FROM YOUR_TABLE t 
    
    6
  2. SELECT DATEDIFF(CURRENT_DATE, STR_TO_DATE(t.birthday, '%d-%m-%Y'))/365 AS ageInYears
      FROM YOUR_TABLE t 
    
    7

Hướng dẫn get age from birthdate mysql - lấy tuổi từ ngày sinh mysql

Đã trả lời ngày 23 tháng 8 năm 2017 lúc 9:18Aug 23, 2017 at 9:18

Hướng dẫn get age from birthdate mysql - lấy tuổi từ ngày sinh mysql

1

Làm cách nào để tính tuổi trong mysql?

Trong MySQL, bạn có thể sử dụng hàm TimestampDiff () sẵn để tính chênh lệch giữa hai ngày và trả về giá trị trong ngày, tháng hoặc năm.use the inbuilt TIMESTAMPDIFF() function to compute the difference between two dates and return a value either in days, months or years.

Làm thế nào để bạn chuyển đổi ngày sinh đến tuổi trong SQL?

Chúng ta có thể tìm thấy tuổi của một người từ ngày sinh của họ bằng cách sử dụng công thức này: Chọn Date_Format (From_Days (Datediff (Now (), 'Date_of_Birth')), '%y') + 0 theo tuổi;Trong công thức trên, trước tiên chúng tôi tìm thấy sự khác biệt giữa ngày hiện tại (now ()) và ngày sinh (trong yyyy-mm-dd) bằng hàm datediff ().SELECT DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(),'DATE_OF_BIRTH')), '%Y') + 0 AS age; In the above formula, we are first finding the difference between the current date (NOW()) and the date of birth (in YYYY-MM-DD) using the DATEDIFF() function.

Kiểu dữ liệu cho DOB trong MySQL là gì?

MySQL lấy và hiển thị các giá trị ngày ở định dạng 'yyyy-mm-dd'.Phạm vi được hỗ trợ là '1000-01-01' đến '9999-12-31'.Loại DateTime được sử dụng cho các giá trị có chứa cả phần ngày và thời gian.YYYY-MM-DD ' format. The supported range is '1000-01-01' to '9999-12-31' . The DATETIME type is used for values that contain both date and time parts.