我有两列数据类型为varchar(6)
的列,格式为yyyymm
。现在我想在他们之间datediff
。
这是我的解决方案,
select
tblA,
tblB,
datediff(month, convert(datetime, tblA+'01', 120),convert(datetime, tblb+'01',120)+1 as count
from mytbl
还有其他想法吗?感谢
答案 0 :(得分:2)
事实证明,YYYYMMDD形式的字符串可以直接转换为日期值,不需要格式。所以,一个稍微简单的版本是:
select tblA, tblB,
datediff(month, convert(date, tblA + '01'), convert(datetime, tblb+'01')+1 as cnt
from mytbl;
我应该注意你可以也这样做:
select ( (left(tblA, 4) * 12 + right(tblA, 2)) -
(left(tblB, 4) * 12 + right(tblB, 2))
)
SQL Server会将字符串转换为数字上下文中的数字。
另外,我觉得奇怪的是日期列被称为tblA
和tblB
,但这就是问题的表达方式。
答案 1 :(得分:0)
你也可以试试这个......
items.push(<li key={i} className={i <= this.props.value && 'filled'} onClick={this.props.onRatingSelected.bind(null, i)}>{'\u2605'}</li>);