我有一列数据如下所示
'1970-01-01 01:15:00.0000000'
(01(days):15(hours):00(minutes):0000000(seconds))
日期无关紧要,但我想将时间分量转换为秒。我想将此行的输出为140400
。
答案 0 :(得分:3)
如果您确实在滥用 const {DocsView, DocsViewMode} = picker
var view = new DocsView(picker.ViewId.SPREADSHEETS)
view.setMimeTypes("image/png,image/jpeg,image/jpg")
view.setMode(DocsViewMode.LIST)
view.setSelectFolderEnabled(false)
var picker = new picker.PickerBuilder()
.enableFeature(picker.Feature.NAV_HIDDEN)
.setAppId(appId)
.setOAuthToken(oauthToken)
.setDeveloperKey(developerKey)
.setCallback(resolve)
.addView(view)
.build()
picker.setVisible(true)
数据类型,并使用小时来存储几天,几分钟来存储小时,几秒钟来存储分钟,以及几秒钟来存储秒...您可以这样做... >
datetime2
但是我强烈,建议您停止滥用DECLARE @YourDatetime datetime2(7) = '1970-01-01 01:15:00.0100000';
SELECT (DATEPART(HOUR,@YourDatetime) * 86400) +
(DATEPART(MINUTE,@YourDatetime) * 3600) +
(DATEPART(SECOND,@YourDatetime) * 60) +
(DATEPART(MILLISECOND, @YourDatetime) / 10)
数据类型。小时应该是小时,而不是几天。希望这就是为什么您要按照自己的要求去做的原因。
但是,这假定您没有24小时或更长时间的任何值,因为datetime2
之类的值不能存储在任何日期和时间数据类型中。
答案 1 :(得分:1)
看起来像小时是几天,分钟是小时,等等
Declare @d DATETIME2='1970-01-01 01:15:00.0000000'
Select (datepart(hour,@d)*3600*24)
+(datepart(minute,@d)*3600)
+(datepart(second,@d)*60)
返回
140400
答案 2 :(得分:0)
对该问题的合理解释将返回90,900:
select datediff(second, '1969-12-31', '1970-01-01 01:15:00.0000000')
答案 3 :(得分:0)
您可以使用datediff()
计算自参考日期以来的秒数:
datediff(s, '1970-01-01', @mydatetime)
我怀疑您实际上是想在1970年1月1日开始,因为那是一个时代的起点。如果您真的想要一天,那么:
datediff(s, '1969-12-31', @mydatetime)