我想将此日期时间格式'01/02/2019 12:00:00 AM'转换为
'2019-02-01'格式
我写了这段代码:
declare @start_date datetime;
declare @end_date datetime;
set @start_date = '01/02/2019 12:00:00 AM';
set @end_date = '28/02/2019 12:00:00 AM';
select *
from test
where [Global Dimension 1 Code] in ('FIN')
and convert(char(10), [Posting Date], 126) between convert(date, convert(char(10), @start_date, 126), 103)
and convert(date, convert(char(10), @end_date, 126), 103)但我搞错了
Msg 242,第16级,状态3,第8行 将varchar数据类型转换为日期时间数据类型会导致超出范围的值。 Msg 241,第16级,第1状态,第10行 从字符串转换日期和/或时间时,转换失败。
但是,当我按照下面的方式运行查询时,它没有出现错误就被执行了。
select *
from test
where [Global Dimension 1 Code] in ('FIN')
and convert(char(10), [Posting Date], 126) between convert(date, convert(char(10), '01/02/2019 12:00:00 AM', 126), 103)
and convert(date, convert(char(10), '28/02/2019 12:00:00 AM', 126), 103)发布于 2019-03-13 05:50:53
使用103
SELECT convert(datetime, '01/02/2019 12:00:00 AM', 103)或
SELECT convert(char(10), '01/02/2019 12:00:00 AM', 126)发布于 2019-03-13 05:47:57
使用下面的cast()和format() -将运行sql server 2012+
select format(cast('01/02/2019 12:00:00 AM' as date),'yyyy-MM-dd')https://stackoverflow.com/questions/55135164
复制相似问题