【mysql】Date和String的互相转换(DATE_FORMAT & STR_TO_DATE)

本文介绍如何使用SQL将字符串类型的日期转换为日期类型,并提供了具体函数和格式化样例。包括DATE_FORMAT用于Date到String的转换及STR_TO_DATE用于String到Date的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL:String转date+30分钟

DATE_ADD(STR_TO_DATE(a.start_time,'%H:%i'),INTERVAL 30 MINUTE)

1.Date  ——>  String

    使用的函数:DATE_FORMAT(date,format)     date:需要转换的日期       format:格式化的样式

   format样式整理:

        年:  %Y  显示四位 : 2015            %y    只显示后两位  :15

        月:  %M 月份的英文显示:October %m  月份的阿拉伯显示:01-12  %b 月份的英文缩略显示:Oct  %c  月份的阿拉伯显示:1-12

        日:  %d 阿拉伯显示:00-31        %D 带有英文后缀:1st-31th     %e 阿拉伯显示:1-31          %j   年的天:001-366   

        时:  %H :00-23           %h:01-12        %I:01-12      %k:0-23      %l:1-12

        分:   %i:00-59

        秒:   %S:00-59        %s:00-59

        微妙: %f

        AM/PM:%p

        12小时制时间:%r:   02:02:44 PM

        24小时制时间: %T:  14:02:44

         周: %W:周的英文显示      %w 周的阿拉伯显示 :0(星期日)-6(星期六)  %a   周的英文缩略显示:Mon-

    eg:DATE_FORMAT(now(),"%Y-%m-%d %T")   2015-09-01 17:10:52

         DATE_FORMAT(now(),"%Y-%m-%d %H:%i:%s %p")     2015-09-01 17:10:52 PM

2.String ——>Date

     使用的函数:STR_TO_DATE(str,format)       str:字符形式的日期       format:格式化样式

  eg:   STR_TO_DATE('1992-04-12',"%Y-%m-%d")   输出:1992-04-12(日期形式)
G
M
T
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu
Text-to-speech function is limited to 200 characters
T
### 使用 `STR_TO_DATE` 函数将字符串转换为日期 在 MySQL 中,`STR_TO_DATE()` 函数用于将给定格式的字符串解析并转换为日期或时间对象。此函数接受两个参数:要解析的字符串以及定义该字符串格式的模式。 #### 基本语法 ```sql SELECT STR_TO_DATE(string, format); ``` 其中: - **string** 是表示日期的时间戳形式的文本串。 - **format** 描述了输入字符串的确切布局,它由一系列特殊字符组成,这些字符对应于不同的日期部分(年、月、日等)。[^1] #### 示例教程 假设有一个包含日期信息作为纯文本存储的数据表,并希望将其转换为实际的 DATE 类型以便进一步处理。下面是一些具体的例子展示如何操作: ##### 例子 1: 转换简单的 "YYYY-MM-DD" 格式的字符串到日期类型 如果数据集中有形如 `'2023-11-28'` 的记录,则可以通过如下方式完成转换: ```sql SELECT STR_TO_DATE('2023-11-28', '%Y-%m-%d'); ``` 这会返回一个有效的日期值 `2023-11-28`。[^2] ##### 例子 2: 处理带有时间分隔符的不同格式 当遇到更复杂的格式比如 `'28-11-2023 14:15:17'` (即 dd-mm-yyyy hh:mm:ss),则应调整相应的模板以匹配这种特定结构: ```sql SELECT STR_TO_DATE('28-11-2023 14:15:17', '%d-%m-%Y %H:%i:%s'); ``` 上述命令能够成功识别所提供的字符串并将之化为标准的 DATETIME 或 TIMESTAMP 数据类型实例。 #### 注意事项 为了确保正确无误地应用 `STR_TO_DATE()` ,需要注意以下几点: - 输入字符串必须严格遵循所指定的格式说明符; - 如果提供的格式不兼容或者无法被解释为合法的日期,则结果将是 NULL; - 对大小写敏感的部分(例如月份名称)应当保持一致; - 可能需要考虑本地化设置的影响,在某些情况下可能会影响星期几的名字或是其他文化差异因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值