【问题标题】:str_to_date function in sql server?sql server中的str_to_date函数?
【发布时间】:2010-08-19 19:41:31
【问题描述】:

MySQL 有一个名为STR_TO_DATE, that converts a string to date 的函数。

问题:

SQL Server 中是否有类似的功能?

【问题讨论】:

标签: sql sql-server tsql string-to-datetime


【解决方案1】:

如果您需要解析特定格式,请使用CONVERT(datetime, @mystring, @format)。以此作为参考:http://www.sqlusa.com/bestpractices/datetimeconversion/

【讨论】:

    【解决方案2】:

    如果字符串是 7/7/2010 怎么办?

    然后根据需要使用 CONVERT 与 101 (mm/dd/yy) 或 103 (dd/mm/yy):

    SELECT CONVERT(DATE, '7/7/2010', 103)
    

    结果:

    2010-07-07
    

    【讨论】:

      【解决方案3】:

      使用CAST

      declare @MyString varchar(10)
      declare @MyDate datetime
      
      set @MyString = '2010-08-19'
      set @MyDate = cast(@MyString as datetime)
      select @MyDate
      

      【讨论】:

        【解决方案4】:
        CAST(<string> AS DATETIME)
        

        【讨论】:

        • 你能举例说明如何使用它吗?什么是字符串是 7/7/2010 而不是 07/07/10 ??
        • CAST/CONVERT 如果您有支持的格式 - STR_TO_DATE supports custom formats,则可以工作。
        • STR_TO_DATE 是 mysql,不是 sqlserver
        【解决方案5】:

        这是一个很好的例子:

        declare @myDate datetime
        set @myDate = '06/09/2017'
        
        select concat(convert(varchar(20), @myDate,101), ' -- ', 
                      convert(varchar(20), @myDate,103), ' -- ',
                      convert(varchar(20), @myDate,6))
        

        这就是你得到的,取决于1011036

        09/06/2017 -- 06/09/2017 -- 06 Sep 17

        这里是日期类型的一个很好的总结 - https://www.w3schools.com/sql/func_convert.asp

        【讨论】:

          【解决方案6】:

          在 MSSQL 上: 选择演员('2012/06/12 10:32AM' 作为日期时间);

          你会得到它: 2012-06-12 10:32:00.000

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-07-18
            • 2016-01-09
            • 1970-01-01
            • 1970-01-01
            • 2010-12-06
            • 2018-06-11
            • 2018-04-07
            • 1970-01-01
            相关资源
            最近更新 更多