本文目录一览:

SQL:利用STR_TO_DATE(string, format_mask)将文本型数据更改为日期型数据

1、创建测试表,含datetime类型的字段;

sql转换日期格式(sql转换为日期格式)sql转换日期格式(sql转换为日期格式)


sql转换日期格式(sql转换为日期格式)


create table test_datetime(id int,dt datetime(2));

2、插入测试数据;

insert into test_datetime values(1,'2019-03-05 01:53:55.63');

insert into test_datetime values(2,'2019-03-05 01:42:32.22');

insert into test_datetime values(3,'2019-03-05 01:12:21.11');

3、查询表中记录,可以发现是到毫秒;

select from test_datetime t;

4、编写sql,将datetime字段,到秒;

select t., FROM_UNIXTIME(floor(unix_timestamp(dt))) b from test_datetime t;

可以发现新字段,已到秒。

select CONVERT(varchar(10), CONVERT(date, '2021/2/2'), 111)

函数介绍:STR_TO_DATE(string, format_mask),将文本转换成日期型。

string:对应的文本数据,如“1/1/2017 0:00”;“August 10 2017”;“‘20140422154706’”

format_mask:是根据前面的文本数据(string),输入对应的文本数据格式;

下面举出相关例子:

SELECT STR_TO_DATE('1/1/2017 0:00','%c/%d/%Y %H:%i');

运行结果:2017-01-01 00:00:00

SELECT STR_TO_DATE('1-1-2017 02:00','%c-%d-%Y %H:%i');

运行结果:2017-01-01 02:00:00

SELECT STR_TO_DATE('112017 02:00','%c%d%Y %H:%i');

运行结果:2017-11-20 02:00:00

SELECT STR_TO_DATE('August 10 2017','%M %d %Y');

运行结果:2017-08-10

从上面的例子我们看出,这个函数还是比较简单的,要做的就是对对应的string写出对应的匹配表达式就好了。

注意:

在面对不同的string文本的时候,需要使用不同的表达方式。

如月份是:August,则只能用 %M来匹配;当月份是数字时可以用%c或%m来匹配;

如小时是:24小时计时时只能用%H或者%k,12小时计时则需要用%h;

等等...以后有再用到的会再补充上。

将SQL查询出的日期更改格式

1、创建测试表,含datetime类型的字段;

create table test_datetime(id int,dt datetime(2));

2、插入测试数据;

insert into test_datetime values(1,'2019-03-05 01:53:55.63');

insert into test_datetime values(2,'2019-03-05 01:42:32.22');

insert into test_datetime values(3,'2019-03-05 01:12:21.11');

3、查询表中记录,可以发现是到毫秒;

select from test_datetime t;

4、编写sql,将datetime字段,到秒;

select t., FROM_UNIXTIME(floor(unix_timestamp(dt))) b from test_datetime t;

可以发现新字段,已到秒。

sql字符串转换成日期

1、创建测试表,含datetime类型的字段;

create table test_datetime(id int,dt datetime(2));

2、插入测试数据;

insert into test_datetime values(1,'2019-03-05 01:53:55.63');

insert into test_datetime values(2,'2019-03-05 01:42:32.22');

insert into test_datetime values(3,'2019-03-05 01:12:21.11');

3、查询表中记录,可以发现是到毫秒;

select from test_datetime t;

4、编写sql,将datetime字段,到秒;

select t., FROM_UNIXTIME(floor(unix_timestamp(dt))) b from test_datetime t;

可以发现新字段,已到秒。

select CONVERT(varchar(10), CONVERT(date, '2021/2/2'), 111)

函数介绍:STR_TO_DATE(string, format_mask),将文本转换成日期型。

string:对应的文本数据,如“1/1/2017 0:00”;“August 10 2017”;“‘20140422154706’”

format_mask:是根据前面的文本数据(string),输入对应的文本数据格式;

下面举出相关例子:

SELECT STR_TO_DATE('1/1/2017 0:00','%c/%d/%Y %H:%i');

运行结果:2017-01-01 00:00:00

SELECT STR_TO_DATE('1-1-2017 02:00','%c-%d-%Y %H:%i');

运行结果:2017-01-01 02:00:00

SELECT STR_TO_DATE('112017 02:00','%c%d%Y %H:%i');

运行结果:2017-11-20 02:00:00

SELECT STR_TO_DATE('August 10 2017','%M %d %Y');

运行结果:2017-08-10

从上面的例子我们看出,这个函数还是比较简单的,要做的就是对对应的string写出对应的匹配表达式就好了。

注意:

在面对不同的string文本的时候,需要使用不同的表达方式。

如月份是:August,则只能用 %M来匹配;当月份是数字时可以用%c或%m来匹配;

如小时是:24小时计时时只能用%H或者%k,12小时计时则需要用%h;

等等...以后有再用到的会再补充上。

您查看一下convert的帮助就知道了。

120或者121的格式是YYYY-MM-DD

而您这个格式是日月年的格式,使用105

SELECT convert(datetime,'30-03-2011',105)

SQL 怎么把DD-MM-YYYY格式的转换成YYYY/MM/DD?

1、创建测试表,含datetime类型的字段;

create table test_datetime(id int,dt datetime(2));

2、插入测试数据;

insert into test_datetime values(1,'2019-03-05 01:53:55.63');

insert into test_datetime values(2,'2019-03-05 01:42:32.22');

insert into test_datetime values(3,'2019-03-05 01:12:21.11');

3、查询表中记录,可以发现是到毫秒;

select from test_datetime t;

4、编写sql,将datetime字段,到秒;

select t., FROM_UNIXTIME(floor(unix_timestamp(dt))) b from test_datetime t;

可以发现新字段,已到秒。

select CONVERT(varchar(10), CONVERT(date, '2021/2/2'), 111)