【发布时间】:2016-09-27 07:20:52
【问题描述】:
我正在检查12/09/2016 到13/09/2016 的条件,但它没有显示13/09/2016 的数据并给出错误
将 char 数据类型转换为 datetime 数据类型导致 datetime 值超出范围。
这是我的查询
SELECT DISTINCT
b.mkey , a.N_UserMkey, cuser_id,isnull(a.N_UserMkey,cuser_id) aa,
ISNULL(b.first_name + ' ', '')
+ ISNULL(b.last_name, '') NAME, convert(varchar,a.U_datetime,103) Action_Date
FROM inward_doc_tracking_trl a
INNER JOIN user_mst b ON isnull(a.N_UserMkey,cuser_id) = b.mkey
WHERE
convert(datetime,a.U_datetime,103)
BETWEEN convert(varchar,'12/09/2016',103)
AND convert(varchar,'13/09/2016',103)
and b.mkey=2357
【问题讨论】:
-
格式化
MM/DD/YYYY? -
@jarlh:不,我想要
dd/MM/yyy格式。我为此使用了 103 -
我只是猜测,由于系统的语言,它采用格式:“月/日/年”的数据。试试
2016-09-13 -
@nad 这将是转换函数结束后的格式。但是,转换函数接收一个字符串,¿哪种格式被认为在转换函数内部解析该字符串?。转换函数分析采用系统默认日期时间格式的字符串。因此,转换函数完全有可能像@jarlh 所说的那样解析
13 -
@nad
CONVERT(data_type(length),expression,style)中的style属性仅适用于日期或时间数据类型。 msdn.microsoft.com/en-us/library/ms187928.aspx
标签: sql sql-server sql-server-2005