sql - 用日期值替换字符串
问题描述
目前,我的包中有一个派生列转换,它将查找一个NULL
值,如果是NULL
,它将给它一个带有正斜杠的默认日期,如下所示
REPLACENULL([date],"2/2/1999")
但是,如果该字段不是NULL
,它将有一个字符串日期,看起来像20200202
。我想将当前表达式添加到 where 如果该字段不为 null 则替换20200202
为2020-02-02
. 我将不胜感激,并会给予高度评价!
解决方案
下面是我在 SQL Server 中的做法。
注意:FORMAT
需要 SQL Server 2012+
DECLARE @StringDate varchar(20);
-- NON-NULL date.
SET @StringDate = '20200202'
SELECT
ISNULL ( FORMAT( CAST ( @StringDate AS date ), 'yyyy-MM-dd' ), '2/2/1999' ) AS NonNullStringDate;
-- NULL date.
SET @StringDate = NULL;
SELECT
ISNULL ( FORMAT( CAST ( @StringDate AS date ), 'yyyy-MM-dd' ), '2/2/1999' ) AS NullStringDate;
退货(分别)
+-------------------+
| NonNullStringDate |
+-------------------+
| 2020-02-02 |
+-------------------+
+----------------+
| NullStringDate |
+----------------+
| 2/2/1999 |
+----------------+
为了日期格式的一致性,您可能需要考虑更改2/2/1999
为1999-2-2
.
推荐阅读
- c# - 在类中使用方法和返回值
- visual-studio - VSTO Visio 插件 - 单击一次 EULA 依赖
- php - 使用 php 每隔几秒调用一次
- python - matplotlib FuncFormatter 字符串格式化带入图形坐标
- java - 如何在android中使用Room Library fts4查询整个表
- c# - 在 Azure 搜索 .NET SDK 中按复杂类型排序?
- python - 我可以使用例如 scipy griddata 创建和插值吗?
- python - 我在 python 中遇到重复行的问题
- anylogic - 显示模型内的代理移动和时间
- python - Tensorflow 输出节点被 StatefulPartitionedCall 替换,后者在加载时抛出 ValueError