我是TypeScript的新手。我正在尝试以select TO_CHAR(
(TIMESTAMP '1970-01-01 00:00:00 UTC' + (my_date/1000) * INTERVAL '1' SECOND) AT TIME ZONE 'America/New_York',
'YYYY-MM-DD HH24:MI:SS') as my_string
from my_table
where TIMESTAMP '1970-01-01 00:00:00 UTC' + (my_date/1000) * INTERVAL '1' SECOND >= systimestamp - INTERVAL '1' HOUR;
格式获取今天的日期,但出现此错误:
类型'string'不能分配给类型'Date'
这是我的代码:
mm-dd-yyyy
应该直接。没有火箭科学。请纠正我哪里我错了。 我因以下几行而收到此错误:
initCalendarYear() {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1;
var yyyy = today.getFullYear();
if(dd < 10) {
dd = '0'+dd;
}
if(mm < 10)
{
mm = '0'+mm;
}
today = mm+'-'+dd+'-'+yyyy;
console.log(today);
}
dd='0'+dd;
mm='0'+mm;
我正在从以下方面寻求帮助:
答案 0 :(得分:5)
new Date()
是一个日期。您将其分配给var today
,这会将变量的类型隐式设置为Date
。
mm+'-'+dd+'-'+yyyy
是一个字符串。您尝试将其分配给today
的{{1}}。它不是一个日期,所以会出现错误。您无法更改变量的类型(除非您首先声明要明确允许多种类型的变量)
使用其他变量名来存储您的字符串。
(执行类似操作的其他变量也是如此)
答案 1 :(得分:0)
问题出在TS中的严格类型中。
今天是Date
类型,您尝试用另一种类型来重新分配值,在您的情况下是String
。
在JS中可以使用,但在TS中则不能。