将文本数据类型字段转换为日期时间
我正在使用 SQL Server 2000,并且我的 ERP 供应商使用文本数据类型字段来保存日期。
日期看起来像:
6/21/2001
但是,其中一些是空白的。
我尝试过使用类似的方法
select coalesce(nullif(fdelivery, ''), '1/1/1900') FROM sorels
来删除空白,但无济于事。
我也尝试过:
case
when ltrim(rtrim(SOR.fdelivery)) = ''
删除空白无济于事。
即使我可以用看起来像日期的内容替换空白,我如何将字段转换或转换为日期时间(来自文本),以便我的报告程序知道它实际上是日期字段而不是文本。
I'm using SQL Server 2000 and my ERP vendor has used a Text datatype field to hold Dates.
The Dates look like:
6/21/2001
However, some of them are blank.
I've tried using something like:
select coalesce(nullif(fdelivery, ''), '1/1/1900') FROM sorels
to remove the blanks to no avail.
I've also tried:
case
when ltrim(rtrim(SOR.fdelivery)) = ''
to remove blanks to no avail.
Even if I can substitute the blanks with something that looks like a date, how can I convert or cast the field to be datetime (from Text) so that my reporting program knows that it is in fact a Date field and not Text.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
啊,我找到了一个方法:
这个可以。它将文本字段的日期“部分”进行子串化,我猜它隐式地将其转换为 Char 数据类型,然后我可以将其转换为日期时间。
Ah, I found a method:
This will work. It substrings out the date "portion" of the text field which I guess implicitly converts it to a Char datatype and then I can cast that as a datetime.
我已经有一段时间没有使用 SQL Server 2000 了,但是如果 ISDATE 函数可用,您可以像这样使用它:
It's been a while since I used SQL Server 2000, but if the
ISDATE
function is available, you could use it like this: