Hướng dẫn how can i change my date of birth in mysql? - Làm cách nào để thay đổi ngày sinh của tôi trong mysql?

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ỏ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 

Đã 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

319K79 Huy hiệu vàng512 Huy hiệu bạc495 Huy hiệu Đồng79 gold badges512 silver badges495 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

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

MAZ

76010 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.

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

Nicola Cossunicola CossuNicola Cossu

53.2K15 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.64925 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.6805 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

30.1K24 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

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.9K15 Huy hiệu vàng95 Huy hiệu bạc123 Huy hiệu Đồng15 gold badges95 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

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

1

Làm cách nào để thay đổi trường ngày trong mysql?

Nếu bạn muốn cập nhật trường Ngày & Thời gian trong SQL, bạn nên sử dụng truy vấn sau ...
Cập nhật bảng ..
Đặt enddate = '2014-03-16 00: 00: 00.000'.
ID ở đâu = 1 ..

DOB trong MySQL là gì?

Nó hiển thị các giá trị ngày ở định dạng 'yyyy-mm-dd'.Chúng tôi có thể lưu trữ bất kỳ giá trị ngày nào trong phạm vi đã cho '1000-01-01' đến '9999-12-31'.

Làm thế nào để bạn nhập một ngày sinh trong SQL?

SQL Ngày Dữ liệu Loại dữ liệu Ngày-Định dạng yyyy-mm-dd.DateTime-Định dạng: YYYY-MM-DD HH: MI: SS.Dấu thời gian-Định dạng: Yyyy-MM-DD HH: MI: SS.Năm - Định dạng yyyy hoặc yy.

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.

Bài Viết Liên Quan

Chủ Đề