此语句将正确合并2列(“日期”和“时间”)
update AllBW1 set sUserTime =
CAST(
(
STR( YEAR( [DATE] ) ) + '/' +
STR( MONTH( [DATE] ) ) + '/' +
STR( DAY( [DATE] ) ) + ' ' +
(select DATENAME(hour, [TIME]))+ ':' +
(select DATENAME(minute, [TIME])) + ':' +
(select DATENAME(SECOND, [TIME]))
) as DATETIME)
where sUserTime is null我想改进上面的内容,以便用我自己的(GMT-6)替换默认的时区。
我试过几种变体:
CAST((select DATEADD(hour, -6, DATENAME(hour, [TIME]))) as smalldatetime) + ':' +
and
(select CAST(DATEADD(hour, -6, DATENAME(hour, [TIME]))) as datetime) + ':' +也没有实现joy。
thx
发布于 2012-01-31 23:07:57
由LogParser 2.2解析到SQL表中的日志文件有单独的日期和时间字段,但是,由于这两个字段都格式化为datatime字段,它们最终看起来类似于:
2012-01-04 00:00:00.000 for date (all time fields are zeroed)
2012-01-01 06:04:41.000 for time (all date field = first day of current year)这就是为什么查询以其方式解析每个元素的原因。感谢Dems的评论,我把所有的东西都简化了。毫无疑问,这可以根据我正在处理的卷进行优化,这就是adaquate:
update myTable set sUserTime =
(
DATENAME(YEAR, [DATE] ) + '/' +
DATENAME(MONTH, [DATE] ) + '/' +
DATENAME(DAY, [DATE] ) + ' ' +
DATENAME(hour, (dateadd(hh, -6, [time])))+ ':' +
DATENAME(minute, [TIME]) + ':' +
DATENAME(SECOND, [TIME])
)
where sUserTime is nullhttps://stackoverflow.com/questions/9085739
复制相似问题