【发布时间】:2019-08-03 17:35:44
【问题描述】:
我想将此日期时间格式'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)
但是我遇到了一个错误
消息 242,第 16 级,状态 3,第 8 行
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。消息 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)
【问题讨论】:
标签: sql sql-server tsql