在SQL Server中验证日期格式dd-mmm-yyyy和dd mmm yyyy

时间:2018-02-06 18:59:01

标签: sql sql-server

我需要验证两种日期格式: Config::set('database.connections._pgsql.host', $connection->host); Config::set('database.connections._pgsql.port', $connection->port); Config::set('database.connections._pgsql.username', $connection->account_name); Config::set('database.connections._pgsql.password', $connection->password); Config::set('database.connections._pgsql.database', $connection->initial_db); DB::purge('_pgsql'); DB::reconnect('_pgsql'); DD-MMM-YYYY

以下是我用来验证DD-MMM-YYYY

的代码
DD MMM YYYY

以下是我用来验证DD MMM YYYY的代码:

CASE 
   WHEN (date_column != ' ' 
         AND (ISDATE(date_column) = 0
              OR (ISDATE(date_column) = 1
              AND (CHARINDEX('-', date_column, 0) <> 3 
               OR (CHARINDEX('-', date_column, 4) <>7
               OR (LEN(date_column) <> 11))) 
      THEN 1
      ELSE 0  
END)

这些可以组合起来同时填充而不是两个代码块吗?

2 个答案:

答案 0 :(得分:0)

将日期时间转换为您想要的格式。

https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql

示例查询:SELECT GETDATE(),CONVERT(varchar(10),GETDATE(),120) 输出示例:2018-02-06 14:02:50.900 2018-02-06

答案 1 :(得分:0)

当try_parse不是有效日期时,它返回NULL。德国文化'de-de'知道格式'dd-mm-yyyy'或'dd mm yyyy'

CASE WHEN TRY_PARSE(date_column AS DATE USING 'de-de') IS NOT NULL 
     THEN 1 
     ELSE 0 
END