标签: sql-timestamp

Oracle SQL:where子句中的时间戳

我需要查找特定时间范围内的行.

select * 
from TableA 
where startdate >= '12-01-2012 21:24:00' 
  and startdate <= '12-01-2012 21:25:33'
Run Code Online (Sandbox Code Playgroud)

即查找时间戳精度为秒的行,我该如何实现?

sql oracle where sql-timestamp

49
推荐指数
2
解决办法
25万
查看次数

Oracle SQL:将时间戳转换为UTC

我有一个简单的选择查询,如下面,但我注意到我回到了区域时间.如何在我的选择语句中转换为UTC?

select myTimeStamp, MyName, MyBranch from tableA
Run Code Online (Sandbox Code Playgroud)

结果:'27/03/2014 15:15:26''约翰','伦敦'

我尝试过使用sys_extract_utc(myTimeStamp)但是我有错误

sql命令未正确结束

该列myTimestamp的类型为"日期".

sql oracle utc sql-timestamp

13
推荐指数
3
解决办法
6万
查看次数

如何将SSEST中的TIMESTAMP值转换为T-SQL中的VARCHAR?

我试图将表中的TIMESTAMP字段转换为字符串,以便它可以作为动态SQL的一部分打印或执行.SSMS能够做到这一点,因此必须有一个内置的方法来做到这一点.但是,我无法使用T-SQL工作.

以下正确显示表结果:

SELECT TOP 1 RowVersion FROM MyTable
Run Code Online (Sandbox Code Playgroud)

它表明0x00000000288D17AE.但是,我需要将结果作为更大字符串的一部分.

DECLARE @res VARCHAR(MAX) = (SELECT TOP 1 'test' + CONVERT(BINARY(8), RowVersion) FROM MyTable)
PRINT(@res)
Run Code Online (Sandbox Code Playgroud)

这会产生错误: The data types varchar and binary are incompatible in the add operator

DECLARE @res VARCHAR(MAX) = (SELECT TOP 1 'test' + CONVERT(VARCHAR(MAX), RowVersion) FROM MyTable)
PRINT(@res)
Run Code Online (Sandbox Code Playgroud)

这导致垃圾字符: test (®

实际上,空格只是空字符并终止字符串以便运行动态SQL EXEC().

DECLARE @sql VARCHAR(MAX) = 'SELECT TOP 1 ''test'' + CONVERT(VARCHAR(MAX), RowVersion) FROM MyTable'
EXEC (@sql)
Run Code Online (Sandbox Code Playgroud)

这只显示一个带有"test"一词的表格结果.动态SQL中"test"之后的所有内容都被截断,因为该CONVERT函数首先返回终止空字符.

显然,我想要的结果字符串是"test0x000000000000288D17AE"甚至是十进制等值,在这种情况下将是"test680335278".

任何想法将不胜感激.

t-sql sql-server ssms nvarchar sql-timestamp

12
推荐指数
1
解决办法
2万
查看次数

Oracle中的时间戳转换为YYYY-MM-DD HH:MM:SS格式

我正在尝试YYYY-MM-DD HH:MM:SS从Netezza向Oracle 插入带格式的记录,但是我的日期类型无效.

我怎样才能完成这个?

CREATE TABLE AM_PROGRAM_TUNING_EVENT_TMP1
(
    ST TIMESTAMP,
    ET TIMESTAMP,
    MAS_DIV_KEY INTEGER NOT NULL,
    SBSC_GUID_KEY INTEGER NOT NULL,
    STN_KEY INTEGER NOT NULL
 );


INSERT INTO  AM_PROGRAM_TUNING_EVENT_TMP1 VALUES('2012-03-28 11:10:00','2012-03-28 11:30:00',1,3636815,151);
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle11g sql-timestamp

11
推荐指数
2
解决办法
23万
查看次数

java.time.Instant field cannot be filled by JPQL query using "current_timestamp" after update to SpringBoot 3 / Hibernate 6

I have a base class for persisted entities like this:

@EntityListeners(AuditListener.class)
@MappedSuperclass
public abstract class BaseEntity {
    @Id
    private String id;
    private Instant createdAt;
    private String createdBy;
    private Instant modifiedAt;
    private String modifiedBy;
    ...
Run Code Online (Sandbox Code Playgroud)

A listener to fill the created/modified fields on persiste/update:

public class AuditListener {
    @PrePersist
    private void onCreate(BaseEntity entity) {
        entity.setCreatedAt(Instant.now());
        entity.setCreatedBy(getIdUserLogged());
    }
    @PreUpdate
    private void onUpdate(BaseEntity entity) {
        entity.setModifiedAt(Instant.now());
        entity.setModifiedBy(getIdUserLogged());
    }
}
Run Code Online (Sandbox Code Playgroud)

For updates made by query the listener would now work and I've manually set …

hibernate jpql spring-boot sql-timestamp

10
推荐指数
1
解决办法
3391
查看次数

如何使用android中的Room Persistence ORM工具实现created_at和updated_at列

如何使用Android中的工具实现created_atupdated_atRoom Persistence ORM,可以在创建或更新表中的行时自动更新时间戳?

java orm android sql-timestamp android-room

9
推荐指数
2
解决办法
3514
查看次数

MySQL 1292日期时间值不正确

当我尝试将'2011/03/13 02:53:50.000000000'插入时间戳列时,我收到此错误.如果我将13更改为15,14,12或11,则没有问题.我也试过将/改为-s仍然没有去.

我查看了一些与此错误相关的其他线程但似乎没有适用.

我正在运行5.7.9版本.

mysql mysql-error-1292 sql-timestamp

8
推荐指数
2
解决办法
4万
查看次数

SqlAlchemy TIMESTAMP 'on update' 额外

我在 python3.4.3 上使用 SqlAlchemy 来管理 MySQL 数据库。我正在创建一个表:

from datetime import datetime

from sqlalchemy import Column, text, create_engine
from sqlalchemy.types import TIMESTAMP
from sqlalchemy.dialects.mysql import BIGINT
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
class MyClass(Base):

  __tablename__ = 'my_class'

  id = Column(BIGINT(unsigned=True), primary_key=True)
  created_at = Column(TIMESTAMP, default=datetime.utcnow, nullable=False)
  updated_at = Column(TIMESTAMP, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False)
  param1 = Column(BIGINT(unsigned=True), server_default=text('0'), nullable=False)
Run Code Online (Sandbox Code Playgroud)

当我创建这个表时:

engine = create_engine('{dialect}://{user}:{password}@{host}/{name}'.format(**utils.config['db']))
Base.metadata.create_all(engine)
Run Code Online (Sandbox Code Playgroud)

我得到:

mysql> describe my_class;
+----------------+---------------------+------+-----+---------------------+-----------------------------+
| Field          | Type                | Null | Key | Default             | Extra                       | …
Run Code Online (Sandbox Code Playgroud)

python mysql sqlalchemy python-3.x sql-timestamp

6
推荐指数
2
解决办法
1万
查看次数

使用 MySQL 8 在 Liquibase 上输入“Time(3)”

我在 MySQL 8 中使用 Liquibase 时遇到一个问题,其中以下脚本没有放置“time(3)”类型的小数部分,它仅将“time”放置在列的类型上。我们之前在 MySQL 5 上运行过这个脚本,效果很好。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.16.xsd"
    logicalFilePath="20220901.xml">

    <changeSet author="MyUser" id="Change column 'time' to Datatype to milliseconds">
        
         <modifyDataType
            columnName="time"
            newDataType="TIME(3)"
            schemaName="${defaultSchema}"
            tableName="table1"/>   
            
         <addNotNullConstraint 
            columnDataType="TIME(3)"
            columnName="time"
            schemaName="${defaultSchema}"
            tableName="table1" />
                  
     </changeSet>   
            
</databaseChangeLog>

Run Code Online (Sandbox Code Playgroud)

我尝试将 liquibase.core(至 4.16.1)和 mysql-connector-java(至 8.0.30)的 Maven 依赖项更新到最新版本,问题仍然存在。

经过多次测试,我发现问题可能出在 liquibase 生成的查询上,该查询不包含分数部分“(3)”,因此作为解决方法,我使用“modifySql”在最后更改查询。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.16.xsd"
    logicalFilePath="20220901.xml">

 <!-- WORK-AROUND - Liquibase was generating a query with type 'TIME' instead of 'TIME(3)' so 
 we use 'REPLACE_WITH_TIME' as …
Run Code Online (Sandbox Code Playgroud)

java mysql time liquibase sql-timestamp

6
推荐指数
0
解决办法
160
查看次数

Hive - 来自时间戳列的月份和年份

您好我正在尝试使用以下查询提取配置单元中的时间戳列的月份和年份部分

select from_unixtime(unix_timestamp(upd_gmt_ts,'yyyyMM')) from  abc.test;
Run Code Online (Sandbox Code Playgroud)

输出看起来像2016-05-20 01:08:48

所需的输出应为201605

感谢任何建议.

hadoop hive date sql-timestamp

5
推荐指数
2
解决办法
4万
查看次数