Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 年月日至今_Sql_Sql Server_Sql Server 2014 - Fatal编程技术网

Sql 年月日至今

Sql 年月日至今,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,我使用的是SQL Server 2014,我一直在尝试转换: ReceiveDate 07/01/15 07/02/15 为此: ReceiveDate 2015-07-01 2015-07-02 我试过: try_convert(date,SRD.ReceiveDate,103) try_convert(date,SRD.ReceiveDate,101) 有什么建议吗?试试这个: select convert(varchar(10), SRD.ReceiveDate, 120) 答案

我使用的是SQL Server 2014,我一直在尝试转换:

ReceiveDate
07/01/15
07/02/15
为此:

ReceiveDate
2015-07-01
2015-07-02
我试过:

try_convert(date,SRD.ReceiveDate,103)
try_convert(date,SRD.ReceiveDate,101)
有什么建议吗?

试试这个:

select convert(varchar(10), SRD.ReceiveDate, 120) 
答案是:

try_convert(date,SRD.ReceiveDate,1)
您引用的格式编号与输入不匹配,以下是相关的数值和日期格式:

1   - mm/dd/yy
101 - mm/dd/yyyy
103 - dd/mm/yyyy
不是作为回答,但是关于Xedni的评论,这是我使用的一点东西:

------ Convert Dates
;with cte as (
    Select Conv = N
          ,AsDateTime = try_convert(nvarchar(30),GetDate(),N)
          ,AsDate     = try_convert(nvarchar(30),convert(date,GetDate()),N)
          ,AsTime     = try_convert(nvarchar(30),convert(time,GetDate()),N)
     From  (Select Top 200 N=Row_Number() Over (Order By (Select NULL)) From master..spt_values ) N
)
Select * 
 From  cte
 Where AsDateTime is not null 
    or AsDate     is not null 
    or AsTime     is not null
返回


同意mjsqu的回答

除此之外,要获得更多日期格式选项,并处理输入为varchar时可能出现的输入格式问题,您还可以尝试以下操作:

DECLARE @dateValue VARCHAR(20)='07/01/15'

SELECT TRY_CONVERT( DATE, @dateValue, 1) DateValueConvert;

SELECT TRY_PARSE(@dateValue AS DATE USING 'en-us') DateValueUS

SELECT TRY_PARSE(@dateValue AS DATE USING 'en-gb') DateValueGB
输出:


这些数据从哪里开始?varchar字段?这也适用于较旧版本的SQL server。以下是MSDN文档。我总是发现它非常有用,因为与各种日期面具有关的魔法数字几乎不可能记住@Xedni看到了我在这里发布的代码片段。我也不能把它们都弄直。很好,这会进入我的工具箱。