sql >> Database >  >> RDS >> Mysql

MySQL converteert JAARWEEK naar nu

Je moet oppassen dat de jaarweek in de verwachte "modus" staat. (Zie https://dev .mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_week )

De opmaak die in de STR_TO_DATE wordt gebruikt, moet overeenkomen. (Zie https:/ /dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format )

bijv. Bij gebruik van modus 2 (1-53, week 1 is de eerste week met een zondag erin, weken beginnen op een zondag)

SELECT STR_TO_DATE(CONCAT('201439',' Sunday'), '%X%V %W');

bijv. Als u modus 3 gebruikt (volgens ISO-8601), (1-53, week 1 is de eerste week met 4 of meer dagen, beginnend op een maandag), moet u de versie in kleine letters gebruiken.

SELECT STR_TO_DATE(CONCAT('201439',' Monday'), '%x%v %W');

Dus je zou het volgende krijgen (2014-09-28 is een zondag):

SELECT yearweek('2014-09-28', 2);
201439
SELECT yearweek('2014-09-28', 3);
201439
SELECT yearweek('2014-09-29', 2);
201439
SELECT yearweek('2014-09-29', 3);
201440

dan

SELECT STR_TO_DATE(CONCAT('201439',' Sunday'), '%X%V %W'); -- mode 2
2014-09-28
SELECT STR_TO_DATE(CONCAT('201439',' Monday'), '%x%v %W'); -- mode 3 
2014-09-22
SELECT STR_TO_DATE(CONCAT('201440',' Monday'), '%x%v %W'); -- mode 3
2014-09-29


  1. PHP - binaire gegevens invoegen in mysql met behulp van voorbereide instructies

  2. Beste nieuwe functies in PostgreSQL 14

  3. Sequentiële doorvoersnelheden en feeds

  4. Vind lekken in de databaseverbinding in uw toepassing