我如何格式化以varchar格式存储的日期。
我已将日期保存在varchar(255)中,格式为dd:mm:yyyy hh:mm:ss。我需要转换或以hh:mm:ss格式获取。我不想更改数据库结构
我尝试过,
SELECT [FinishingTime] format(varchar(255), [FinishingTime], 120)
除了这个问题: 我会尝试更改数据库结构。在Sql数据库中,如果我使用datetime2(0)。然后我在通过常规代码时遇到了问题。我长期以来尝试转换为dateformat并设置在字符串中,然后存储在 数据库。
def time1= time / 1000; here time is in long
def time2 = time1 + 3600 + timeLeft;
LocalDateTime dateTime = LocalDateTime.ofEpochSecond(Finish2, 0, ZoneOffset.UTC);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss", Locale.ENGLISH);
String formattedDate = dateTime.format(formatter);
machine.setFinishingTime(formattedDate);
Now i use the getter and setter in a class.
public String getFinishingTime()
{
return getPropertyContainer().getString(FINISHING_TIME, "")
}
public void setFinishingTime(String finishingTime)
{
getPropertyContainer().setString(FINISHING_TIME, finishingTime)
}
现在的问题是,如果我使用日期时间而不是字符串,它不会写在数据库中,或者我无法通过设置器进行设置。
答案 0 :(得分:1)
您不需要对话,只需使用substring()
函数:
select substring([FinishingTime], charindex(' ', [FinishingTime]) + 1, len([FinishingTime]))
from table t;
但是,您的想法很难以自定义格式存储日期时间,这会在数据查询时给您带来很多麻烦。
答案 1 :(得分:0)
我认为它是MS SQL
select convert(varchar, FinishingTime, 108)
或
select convert(varchar, FinishingTime, 8)