sql server将表示日期时间的字符串转换为日期

时间:2019-06-28 12:04:38

标签: sql sql-server

我正在尝试将字符串'2019-31-01 09:00:00'转换为日期。

SELECT CAST('2019-31-01 09:00:00.000' AS date);

SQL Server返回一条错误消息:从字符串转换日期和/或时间失败。

DECLARE @MyDate AS datetime = '2019-31-01 00:00:00';
SELECT CAST(@MyDate AS date)    
--2019-01-31

工作。由于语言环境。令人困惑?

2 个答案:

答案 0 :(得分:1)

使用合理的日期/时间格式(YYYY-MM-DD):

SELECT CAST('2019-01-31 09:00:00.000' AS date);

或者微软的建议:

SELECT CAST('2019-01-31T09:00:00.000' AS date);

注意:您将失去时间部分。

答案 1 :(得分:1)

日期格式应为:Sub Filter() Dim Criteria As Variant Criteria = Worksheets("Sheet1").Range("A1:A140") Worksheets("AP").Range("$A$1:$h$100").AutoFilter Field:=3, Criteria1:=Criteria, Operator:=xlFilterValues End Sub

yyyy-mm-dd