sql - 在函数 SQL 中强制转换之前指定字符串日期格式
问题描述
我有一个将字符串日期转换为日期格式的场景。但是日期字符串不是直接格式,因此转换会引发错误。所以我尝试的是
set dateformat dmy
在 sql 中进行强制转换之前,它没有任何问题。
但问题是我需要在视图或函数中实现它。但令人失望的部分、功能或视图不支持设置日期格式,它称其为副作用运算符
那么如何在转换为函数或视图之前指定给定字符串的日期格式?
解决方案
正如 Damien 在他对这个问题的评论中所写的那样,理想情况下,您首先不应该弄乱日期时间的字符串表示 - 您应该使用正确的数据类型 - 并且由于您询问创建视图,它只能意味着在某处您的数据库中有一个日期时间值存储为字符串。
这种情况的解决方案是更改存储此值的方式 -DateTime2
用于日期时间值、Date
仅日期值或Time
时间值。
进一步阅读 - Aaron Bertrand 的坏习惯:选择错误的数据类型
假设您无法更改数据库设计,请阅读此答案的其余部分。
您不能set dateformat
在视图或函数上使用,但您可以使用convert
而不是将值cast
的字符串表示形式更改datetime
为实际datetime
值,假设字符串表示形式具有一种受支持的日期格式(其中有很多,所以通常它不应该是一个问题)。
如果您的字符串表示的datetime
格式不受内置convert
函数支持,您可能需要以字符串操作的形式做一些额外的工作,以将其更改为受支持的格式,或者(在更难的情况下)将字符串表示分离为部分,然后使用datetimefromparts.
如果您可以提供您在格式的字符串表示中使用的实际格式,datetime
我可能可以编辑此答案以向您确切展示如何操作。
推荐阅读
- javascript - do while循环中的变量范围
- python-3.x - 如何编写 Python 异步串行异步阅读器?
- python - KeyError:DRF 中带有 ModelSerializer 的“请求”
- python - 谷歌云虚拟机:Cuda out Memory
- python - 将 Python 中的文件复制到现有目录(允许覆盖)
- javascript - 在nodejs中找不到数据库mongodb
- r - 在 ggplot - R 中使用 geom_area 时创建平滑线
- javascript - 在视图 mvc 中从网格中添加列的值
- google-cloud-platform - 如何从 GCP 中 Redis 实例的 Memorystore 检索日志
- python - Scrapy 不断给我错误的 AttributeError: 'str' object has no attribute 'text'