字符串转时间格式

周末。

把字符串转时间格式的一些的方法小结一下。

DEMO如下:

---------------------------

uses StrUtils;

......
......

var TimeStr:String;
    aDate:TDateTime;
begin
  TimeStr:='2006/03/05';
  TimeStr:=AnsiReplaceStr(TimeStr, '/', '-');
  aDate:=StrToDate(TimeStr);
  ShowMessage('AnsiReplaceStr(''2006/03/05'')='+ DateToStr(aDate)); //得到'2006-3-5'


  TimeStr:='2006/03';
  TimeStr:=AnsiReplaceStr(TimeStr, '/', '-');
  if Pos('-',TimeStr) = LastDelimiter('-',TimeStr) then //判断是否只有一个分割符
     TimeStr:=TimeStr+'-01';
  aDate:=StrToDate(TimeStr);
  ShowMessage('LastDelimiter(''2006/03'')='+ DateToStr(aDate));  //得到'2006-3-1'


  TimeStr:='2006/03/05';
  aDate:=VarToDateTime(TimeStr);
  ShowMessage('VarToDateTime(''2006/03/05'')='+ DateToStr(aDate)); //得到'2006-3-5'


  TimeStr:='2006/03';
  aDate:=VarToDateTime(TimeStr);
  ShowMessage('VarToDateTime(''2006/03'')='+ DateToStr(aDate)); //得到'2006-3-1'


  TimeStr:='2006-03-05';
  aDate:=VarToDateTime(TimeStr);
  ShowMessage('VarToDateTime(''2006-03-05'')='+ DateToStr(aDate)); //得到'2006-3-5'

 {Microsoft Excel 将日期存储为序列号(称为序列值)。
  默认情况下,1900年1月1日是序列号1,2008年1月1 日是序列号39,448。
  这是因为它距 1900 年1月1日有39,448 天。
  Excel 将时间存储为小数,因为时间被看作天的一部分。
  因为日期和时间都是数值,因此也可以进行加、减等各种运算。
  通过将包含日期或时间的单元格格式设置为“常规”格式,
  可以查看以系列值显示的日期和以小数值显示的时间。
  Microsoft Excel for Windows 默认的日期系统是 1900 年日期系统。
  }
  
  TimeStr:='38781'; //Excel文件中存储的日期格式,距1900 年 1 月1 日 有38781天。
 
  //格式化为'yyyy-mm-dd'的时间格式
  if StrToFloatDef(TimeStr, -99999) <> -99999 then
     TimeStr := FormatDateTime('yyyy-mm-dd', StrToFloat(TimeStr));  
  aDate:=VarToDateTime(TimeStr);
  ShowMessage('StrToFloatDef(''38781'')='+ DateToStr(aDate)); //得到'2006-3-5'


  TimeStr:='2006-03-05';  //yyyy-mm-dd时间格式
  if StrToFloatDef(TimeStr, -99999) <> -99999 then 
     TimeStr := FormatDateTime('yyyy-mm-dd', StrToFloat(TimeStr)); //这句没有必要,仅验证StrToFloatDef。
  aDate:=VarToDateTime(TimeStr);
  ShowMessage('StrToFloatDef(''2006-03-05'')='+ DateToStr(aDate)); //得到'2006-3-5'
end;

---------------------------

[-完-]

                                                                                        By    J.R.Q.

                                                                                      2006/03/05    于穗

在 MySQL 中,可以使用 `STR_TO_DATE()` 函数将字符串换为日期格式。该函数的语法如下: ```sql STR_TO_DATE(str, format) ``` 其中,`str` 是要换的字符串,`format` 是指定字符串的日期格式。 ### 示例 假设有一个字符串 `'2023-10-05'`,你想将其换为日期格式: ```sql SELECT STR_TO_DATE('2023-10-05', '%Y-%m-%d') AS date_value; ``` 这将返回一个日期值 `2023-10-05`。 ### 常用的格式说明符 - `%Y`:四位数的年份(例如:2023) - `%y`:两位数的年份(例如:23) - `%m`:两位数的月份(01 到 12) - `%d`:两位数的日期(01 到 31) - `%H`:24 小时制的小时(00 到 23) - `%i`:分钟(00 到 59) - `%s`:秒(00 到 59) ### 复杂示例 假设有一个字符串 `'05,10,2023'`,格式为 `日,月,年`,可以这样换: ```sql SELECT STR_TO_DATE('05,10,2023', '%d,%m,%Y') AS date_value; ``` 这将返回 `2023-10-05`。 ### 注意事项 1. 确保字符串的格式与指定的格式匹配,否则会返回 `NULL`。 2. 如果字符串中包含时间部分,也可以使用 `STR_TO_DATE()` 进行换,例如: ```sql SELECT STR_TO_DATE('05,10,2023 14:30:00', '%d,%m,%Y %H:%i:%s') AS datetime_value; ``` 这将返回 `2023-10-05 14:30:00`。 ### 其他相关函数 - `DATE_FORMAT()`:将日期或日期时间值格式化为字符串。 - `DATE()`:提取日期或日期时间值的日期部分。 - `TIME()`:提取日期或日期时间值的时间部分。 ### 示例:`DATE_FORMAT()` ```sql SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_date; ``` 这将返回当前日期时间的格式化字符串。 ### 总结 使用 `STR_TO_DATE()` 函数可以方便地将字符串换为 MySQL 的日期或日期时间格式,只需确保字符串的格式与指定的格式匹配即可。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值